提供檔案相關的操作方法,包括檔案增刪改查,複製,移動等。
請求參數中的 options: IPDSRequestConfig 基於 axios 的 request config 封裝,詳情請看:AxiosRequestConfig。
listFiles 方法
列舉指定目錄下的檔案或檔案夾。
const result = await client.listFiles(params, options)舉例
const {items=[]} = await client.listFiles({
drive_id:'1001',
parent_file_id:'root'
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | IListFileReq | 是 | 查詢參數。 |
options | IPDSRequestConfig | 其它配置項。 |
IListFileReq
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟ID。drive_id和share_id必選其一。 | |
share_id | string | 分享ID。drive_id和share_id必選其一。 | |
parent_file_id | string | 上級檔案目錄ID。 | |
fields | string | 返迴文件欄位,返回全部欄位傳 "*"。不傳則只返回基本欄位。預設: 不傳。 | |
url_expire_sec | number | URL有效時間。 | |
video_thumbnail_process | string | 影片縮圖處理運算式。 請參考 簡介。 | |
image_thumbnail_process | string | 圖片縮圖處理運算式。 請參考 簡介。 | |
image_url_process | string | 圖片URL處理運算式。 請參考 簡介。 | |
limit | number | 返回的數量限制。 | |
marker | string | 分頁標記。 | |
order_by | string | 排序欄位。 | |
order_direction | string | 可選值 'DESC' | 'ASC'。 | |
starred | boolean | 是否收藏。 | |
category | string | 類別。 | |
status | string | 狀態。 | |
type | string | 檔案類型, 可選 'file' | 'folder' |
IFileItem
欄位 | 類型 | 必選 | 說明 |
action_list | array | 許可權列表。 | |
category | string | 檔案類型, 取值:app | doc | image | video | audio | zip | others。 | |
content_hash | string | 檔案標識。 | |
content_hash_name | string | 使用的加密方式。 | |
content_type | string | 內容類型。 | |
crc64_hash | string | crc計算的hash值。 | |
created_at | Date | 是 | 建立時間。 |
creator_id | string | 是 | 建立人ID。 |
creator_name | string | 是 | 建立人名稱。 |
creator_type | string | 是 | 建立人類型,取值:'group' | 'user'。 |
domain_id | string | 是 | domain ID。 |
download_url | string | 下載URL,檔案類型返回。 | |
drive_id | string | 是 | 雲端硬碟ID。 |
description | string | 描述資訊。 | |
encrypt_mode | string | 是 | 加密模式。 |
file_extension | string | 副檔名, 如: | |
file_id | string | 是 | 檔案夾ID。 |
hidden | boolean | 是 | 是否隱藏。 |
last_modifier_id | string | 是 | 最後修改人ID。 |
last_modifier_name | string | 最後修改人名稱。 | |
last_modifier_type | string | 修改人類型,取值:'group' | 'user'。 | |
labels | string | 標籤。 | |
location | string | 位置。 | |
mime_extension | string | 媒體類型副檔名。 | |
mime_type | string | 媒體類型。 | |
meta | string | 雲資訊。 | |
name | string | 是 | 檔案夾名稱。 |
parent_file_id | string | 是 | 上級目錄ID。 |
punish_flag | number | 錯誤數量。 | |
revision_id | string | 是 | 修訂版本。 |
rapid_upload | boolean | 是否秒傳。 | |
size | number | 檔案大小,單位Byte。 | |
starred | boolean | 是 | 是否收藏。 |
status | string | 是 | 可選值 'available' | 'uploading' |
streams_upload_info | 流上傳資訊。 | ||
thumbnail | string | 圖片和視頻檔案才有。 | |
type | string | 是 | 檔案類型,可選值 'file' | 'folder'。 |
trashed | boolean | 是否已被移到資源回收筒裡。 | |
updated_at | Date | 是 | 更新時間。 |
user_meta | string | ||
upload_id | string | 上傳ID。 | |
url | string | 原檔案URL。 |
download_url和url的區別:download_url會增加Content-Disposition: attachment; filename="filename"訊息頭,瀏覽器會直接下載。URL沒有這個訊息頭,有些檔案瀏覽器會直接開啟,比如瀏覽器支援直接開啟的圖片,mp4,pdf等。
關於
thumbnail, 圖片,視頻等才有縮圖。
searchFiles 方法
根據條件搜尋檔案。
const result = await client.searchFiles(params, options, isRecycleBin)參數說明
欄位 | 類型 | 必選 | 說明 |
params | object | 是 | 搜尋相關參數,請查看 ISearchFileReq。 |
options | IPDSRequestConfig | 其它配置項。 | |
isRecycleBin | boolean | 資源回收筒搜尋傳 true, 其它傳 false, 預設為false。 |
ISearchFileReq
欄位 | 類型 | 必選 | 說明 |
limit | number | 返回的數量限制。 | |
query | string | 是 | 篩選條件陳述式,具體用法請看檔案搜尋。 |
drive_id | string | 是 | 雲端硬碟ID。 |
fields | string | 返迴文件欄位,返回全部欄位傳 "*"。不傳則只返回基本欄位。預設: 不傳。 | |
order_by | string | 排序欄位。 | |
marker | string | 分頁標記。 | |
url_expire_sec | number | URL 有效時間。預設2小時。 | |
image_thumbnail_process | string | 圖片縮圖處理運算式。請參考 簡介。 | |
image_url_process | string | 圖片URL 處理運算式。請參考 簡介。 | |
video_thumbnail_process | string | 影片縮圖處理運算式。請參考 簡介。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | IListRes | 是 | 返回結果。 |
IListRes
欄位 | 類型 | 必選 | 說明 |
items | array | 是 | 檔案清單,具體項欄位請參考 listFiles 方法中的 IFileItem。 |
next_marker | string | 分頁標記。 |
getFile 方法
根據檔案ID查詢檔案資訊。
const result = await client.getFile(params, options)參數說明
欄位 | 類型 | 必選 | 說明 |
params | object | 是 | 查詢參數,查看 IGetFileReq 類型。 |
options | IPDSRequestConfig | 其它配置項。 |
IGetFileReq
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟ID。drive_id和share_id必選其一。 | |
share_id | string | 分享ID。drive_id和share_id必選其一。 | |
file_id | string | 檔案ID | |
fields | string | 返迴文件欄位,返回全部欄位傳 "*"。不傳則只返回基本欄位。預設: 不傳。 | |
url_expire_sec | number | 返回的各個 URL 簽名的有效時間。 | |
video_thumbnail_process | string | 影片縮圖處理運算式。 請參考 簡介。 | |
image_thumbnail_process | string | 圖片縮圖處理運算式。 請參考 簡介。 | |
image_url_process | string | 圖片URL處理運算式。 請參考 簡介。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果,具體請查看 IFileItem 類型。 |
getFileDownloadUrl
擷取檔案的 download_url, 在瀏覽器中開啟 download_url 可以直接下載檔案。
const result = await client.getFileDownloadUrl(params, options)舉例
const info = await client.getFileDownloadUrl({
drive_id: '1',
file_id: 'xxxxx',
})參數說明:
欄位 | 類型 | 必選 | 說明 |
params | object | 是 | 查詢參數,查看 IGetFileDownloadUrlReq 類型。 |
options | IPDSRequestConfig | 其它配置項。 |
IGetFileDownloadUrlReq
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟ID。drive_id和share_id必選其一。 | |
share_id | string | 分享ID。drive_id和share_id必選其一。 | |
file_id | string | 檔案ID。 | |
fields | string | 返迴文件欄位,返回全部欄位傳 "*"。不傳則只返回基本欄位。預設: 不傳。 | |
file_name | string | 下載檔案名稱,即下載時服務端回應標頭會設定 | |
expire_sec | number | url有效時間。單位秒。最長 115200 秒,預設為 900 秒。 |
返回
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果,具體請查看 IGetFileDownloadUrlRes 類型。 |
IGetFileDownloadUrlRes
欄位 | 類型 | 必選 | 說明 |
expiration | string | 是 | 到期時間。 |
method | string | 是 | 適用的HTTP方法,一般為 GET。 |
url | string | 是 | 檔案下載 URL。 |
size | number | 檔案大小,單位Byte。 |
saveFileContent 方法
儲存內容到檔案, 或者建立檔案。
傳入相同檔案ID會覆蓋,不傳檔案ID,會被認為是新檔案,將根據 check_name_mode 參數執行相應的策略。check_name_mode 預設是 'refuse'。
const result = await client.saveFileContent(params, content, config)舉例
建立空檔案
await client.saveFileContent({
drive_id: '1',
parent_file_id: 'root',
name: '未命名.txt',
content_type: 'text/plain; charset=utf-8',
}, '')修改已有檔案的內容
await client.saveFileContent(fileItem, '修改的內容')參數說明
欄位 | 類型 | 必選 | 說明 |
params | IGetFileReq | 是 | 檔案資訊,查看 IGetFileReq 類型。 |
content | string | 檔案內容,預設為空白 ''。 | |
config | ISaveFileConfig | 其他配置。 |
ISaveFileConfig
欄位 | 類型 | 必選 | 說明 |
check_name_mode | boolean | 同名策略配置,取值範圍: auto_rename: 檔案名稱後面增加隨機數。 refuse: 拋出 ignore: 允許同名。 預設 refuse。 如果第一個參數含有 file_id 欄位, 則此欄位失效。 | |
ignore_rapid | boolean | (主要用來測試)強制不秒傳,預設false。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果,具體請查看 IFileItem 類型 |
getFileContent 方法
擷取檔案內容(一般用來讀取文字檔內容)。
注意,此方法擷取檔案內容直接賦值給變數,如果檔案太大(太佔用記憶體)不建議使用此方法。
const result = await client.getFileContent(params, options)參數說明
欄位 | 類型 | 必選 | 說明 |
params | IGetFileReq | 是 | 請求參數 。 |
options | IPDSRequestConfig | 其他請求參數。 |
傳回值中的 content 欄位,和 options.responseType 相關。預設responseType為 arraybuffer。返回的content是 Buffer(for node.js)| ArrayBuffer(for 瀏覽器)。
如果確定檔案內容是文字檔,options.responseType 應該設定為 text,這樣返回的 content就是個字串。
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果 |
result
欄位 | 類型 | 必選 | 說明 |
headers | object | 是 | 相應頭資訊。 |
content | Buffer | string | ... | 是 | 內容資訊,可能為空白。 根據 responseType 的設定返回不同格式。詳細情況請參考axios的responseType說明。 |
size | number | 是 | 檔案大小,單位Byte。 |
type | string | 是 | 檔案ID。 |
updated_at | string | 是 | 更新時間。 |
status | string | 是 | 狀態。 |
renameFile 方法
檔案/檔案夾重新命名
const result = await client.renameFile(fileItem, newName,check_name_mode)舉例
await client.renameFile({
drive_id: "1",
file_id: 'xxxxxx',
}, '新的名稱.txt')參數說明
欄位 | 類型 | 必選 | 說明 |
fileItem | IFileItem | 是 | 要重新命名的檔案資訊,查看 IFileItem 類型。 |
newName | string | 是 | 新名稱。 |
check_name_mode | string | 同名策略配置,取值範圍: auto_rename: 檔案名稱後面增加隨機數。 refuse: 拋出 ignore: 允許同名。 預設 refuse。 如果第一個參數含有 file_id 欄位,則此欄位失效。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果,查看 IFileItem 類型。 |
updateFile 方法
修改檔案/檔案夾資訊。
const result = await client.updateFile(params, options)參數說明
欄位 | 類型 | 必選 | 說明 |
params | object | 是 | 要更新的檔案資訊 ,欄位請查看 IUpdateFileReq。 |
options | IPDSRequestConfig | 其它配置項。 |
IUpdateFileReq
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟ID。drive_id 和 share_id 必選其一。 | |
share_id | string | 分享ID。drive_id 和 share_id 必選其一。 | |
file_id | string | 是 | 檔案ID。 |
check_name_mode | string | 同名策略配置,取值範圍: auto_rename: 檔案名稱後面增加隨機數。 refuse: 拋出 ignore: 允許同名。 | |
parent_file_id | string | 上級目錄ID。 | |
custom_index_key | string | 自訂的key。 | |
description | string | 描述。 | |
encrypt_mode | string | 加密模式。 | |
hidden | boolean | 是否隱藏。 | |
labels | array | 標籤。 | |
meta | string | ||
name | string | 名稱。 | |
starred | boolean | 是否收藏。 | |
user_meta | string |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回更新之後的資訊,具體項欄位請參考 listFiles 方法中的 IFileItem 類型。 |
getFileByPath 方法
根據路徑擷取檔案或檔案夾資訊。
比如: 根據 /a/b/c ,擷取對應的檔案Item資訊。
const result = await client.getFileByPath(params, options)參數說明
欄位 | 類型 | 必選 | 說明 |
params | IGetFileByPathReq | 是 | 參數。 |
options | IPDSRequestConfig | 其它配置項。 |
IGetFileByPathReq
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 是 | drive ID。 |
file_path | string | 是 | 檔案夾路徑,樣式如: ‘/a/b/c’ 。 |
fields | string | 檔案類型,全部為 *。 | |
url_expire_sec | number | URL有效時間,單位:秒。 | |
video_thumbnail_process | string | 影片縮圖處理運算式。 請參考 簡介。 | |
image_thumbnail_process | string | 圖片縮圖處理運算式。 請參考 簡介。 | |
image_url_process | string | 圖片URL處理運算式。 請參考 簡介。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果,具體請查看 IFileItem 類型。 |
getBreadcrumbFolderList 方法
擷取多級麵包屑目錄資訊:從目前的目錄遞迴向上尋找所有目錄資訊(調用getFile介面)。
返回的數組不包含root目錄。
異常情況
* 1. 遇到沒有許可權(403)的目錄,將截止。返回的數組包含一個 is_forbidden==true 的目錄資訊。
* 2. 其他異常直接拋出報錯。
const result = await client.getBreadcrumbFolderList(params, options)舉例
// 假設有目錄:/a/b/c/
// 目錄 c 的 file_id 為 “620cb4363a20321aa66a495ca063ac2679a8f726”
const arr = await client.getBreadcrumbFoldderList({
drive_id,
file_id,
})
// 返回多級麵包屑目錄資訊:[{file_id:'a的目錄ID', name:'a'},{file_id:'b的目錄ID', name:'b'}]參數說明
欄位 | 類型 | 必選 | 說明 |
params | IGetBreadcrumbReq | 是 | 參數。 |
options | IPDSRequestConfig | 其它配置項。 |
IGetBreadcrumbReq
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟 ID 。drive_id 和 share_id 必選其一。 | |
share_id | string | 分享ID。drive_id 和 share_id 必選其一。 | |
file_id | string | 是 | 目前的目錄 ID。 |
end_parent_id | string | 截止尋找的父目錄ID。預設: root。 |
返回
欄位 | 類型 | 必選 | 說明 |
result | IParentFolderNameId[] | 是 | 返回結果。 |
IParentFolderNameId
欄位 | 類型 | 必選 | 說明 |
file_id | string | 是 | 目錄的檔案ID。 |
name | string | 是 | 目錄名稱。 |
is_forbidden | boolean | 遇到沒有許可權查詢的目錄時為true。 |
getBreadcrumbFolders 方法
(不推薦使用此方法)請使用 getBreadcrumbFolderList 方法替代
擷取多級麵包屑目錄資訊:從目前的目錄遞迴向上尋找所有目錄資訊(調用getFile介面)。
返回的數組不包含root目錄。
異常情況
* 1. 遇到沒有許可權(403)的目錄,將截止。返回的數組包含一個 is_forbidden==true 的目錄資訊。
* 2. 其他異常直接拋出報錯。
const result = await client.getBreadcrumbFolders(drive_id,file_id, end_parent_id)參數說明
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 是 | 當前雲端硬碟 ID。 |
file_id | string | 是 | 目前的目錄 ID。 |
end_parent_id | string | 截止尋找的父目錄ID。預設: root。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | IParentFolderNameId[] | 是 | 返回結果。 |
IParentFolderNameId
欄位 | 類型 | 必選 | 說明 |
file_id | string | 是 | 目錄的檔案ID。 |
name | string | 是 | 目錄名稱。 |
is_forbidden | boolean | 遇到沒有許可權查詢的目錄時為true。 |
createFolder 方法
建立目錄(檔案夾)
const result = await client.createFolder(params, options)舉例:
await client.createFolder({
name: '建立檔案夾',
drive_id: '1',
parent_file_id: 'root',
// check_name_mode:'auto_rename'
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | ICreateFolderReq | 是 | 查看 |
options | IPDSRequestConfig | 否 | 其它配置項。 |
ICreateFolderReq
欄位 | 類型 | 必選 | 說明 |
check_name_mode | string | 同名策略配置,取值範圍: auto_rename: 檔案名稱後面增加隨機數。 refuse: 拋出 ignore: 允許同名。 預設 refuse。 | |
drive_id | string | 雲端硬碟ID。drive_id 和 share_id 必選其一。 | |
share_id | string | 分享ID(分享連結有效)。drive_id 和 share_id 必選其一。 | |
name | string | 是 | 目錄名稱。 |
parent_file_id | string | 是 | 上級檔案ID,根路徑傳 root。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | ICreateFolderRes | 是 | 返回結果 |
ICreateFolderRes
欄位 | 類型 | 必選 | 說明 |
domain_id | string | 是 | domain ID。 |
drive_id | string | 雲端硬碟ID。drive_id 和 share_id 必選其一。 | |
share_id | string | 分享ID。drive_id 和 share_id 必選其一。 | |
encrypt_mode | string | 加密模式 | |
file_id | string | 是 | 檔案ID |
file_name | string | 是 | 檔案名稱 |
parent_file_id | string | 是 | 上級檔案ID,根路徑傳 'root' |
type | string | 是 | 檔案類型,可選值 'file' | 'folder', |
範例:
{
"parent_file_id": "root",
"type": "folder",
"file_id": "61ba1892abbe9f56bb7342c4beee82156e68dd67",
"domain_id": "daily123",
"drive_id": "1",
"file_name": "建立檔案夾",
"encrypt_mode": "none"
}createFolders 方法
如果遇到同名的情況,根據 check_name_mode 策略執行。
const result = await client.createFolders(folderNames, parentKey, config)參數說明
欄位 | 類型 | 必選 | 說明 |
folderNames | string[] | 是 | 目錄名稱,比如要建立的目錄是 ‘a/b/c’, 傳入格式 ['a', 'b', 'c' ] |
parentKey | IParentFileKey | 是 | 建立多級檔案夾參數 |
config | ICreateFoldersConfig | 可選配置參數 |
IParentFileKey
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟ID。drive_id 和 share_id 必選一個。 | |
share_id | string | 分享ID。drive_id 和 share_id 必選一個。 | |
parent_file_id | string | 是 | 上級目錄ID,根目錄為 'root'。 |
ICreateFoldersConfig
欄位 | 類型 | 必選 | 說明 |
check_name_mode | string | 同名策略配置,取值範圍: auto_rename: 檔案名稱後面增加隨機數。 refuse: 回調 ignore: 允許同名。 overwrite: 同名覆蓋。 skip: 同名跳過。 預設 refuse。 | |
create_folder_cache | Map<string, any>={} | 緩衝目錄資訊的map。 | |
onFolderRepeat | ()=>boolean | 發現路徑存在時的回調,返回 | |
onFolderCreated | (fileItem)=>void | 建立成功的回調 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | string | 是 | 建立成功的路徑 |
deleteFile 方法
刪除指定檔案或者檔案夾。
await client.deleteFile(params, permanently, options)參數說明
欄位 | 類型 | 必選 | 說明 |
params | IFileKey | 是 | 要刪除的檔案資訊。 |
permanently | boolean | 是否永久刪除,false 表示暫時刪除,true 表示永久刪除, 預設 false。 | |
options | IPDSRequestConfig | 其它配置項。 |
IFileKey
欄位 | 類型 | 必選 | 說明 |
share_id | string | 分享id,drive_id 和 share_id 必選其一。 | |
drive_id | string | 雲端硬碟id,drive_id 和 share_id 必選其一。 | |
file_id | string | 要刪除的檔案或檔案夾ID。 |
返回
如果是刪除單個檔案,可能直接返回 http status code 204,響應body為空白。
如果是刪除目錄,可能會返回 http status code 202, body 以下欄位組成的 JSON結構:
欄位 | 類型 | 必選 | 說明 |
async_task_id | string | 非同步任務id。 | |
domain_id | string | DomainID。 | |
file_id | string | 刪除的檔案或檔案夾ID。 |
batchDeleteFiles 方法
大量刪除指定檔案或者檔案夾。
const result = await client.batchDeleteFiles(params, permanently, options)參數說明
欄位 | 類型 | 必選 | 說明 |
params | IFileKey[] | 是 | 要刪除的檔案資訊列表,支援批量,其中每一項的欄位請參考 IBatchFileReq 的說明。(注意:只需傳入要刪除的檔案ID或目錄ID,該方法會自動遞迴目錄刪除下面的檔案。) |
permanently | boolean | 是 | 是否永久刪除,false 表示暫時刪除,true 表示永久刪除, 預設 false 。 |
options | IPDSRequestConfig | 否 | 其它配置項。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回刪除成功和失敗的結果清單 { successArr: [], errorArr: [] }。 |
successArr 成功結果
如果刪除的是檔案,successArr 中的結果為 undefined,如果刪除的是檔案夾,返回的結果包含如下欄位。
欄位 | 類型 | 必選 | 說明 |
async_task_id | string | 是 | 非同步任務ID。 |
domain_id | string | 是 | domain ID。 |
drive_id | string | 是 | 雲端硬碟ID。 |
share_id | string | 分享ID。 | |
file_id | string | 是 | 刪除失敗成功的檔案或檔案夾ID。 |
errorArr 失敗結果
如果失敗了,則會將傳入的檔案資訊對應的返回。
欄位 | 類型 | 必選 | 說明 |
share_id | string | 分享ID。 | |
drive_id | string | 是 | 雲端硬碟ID。 |
file_id | string | 是 | 刪除失敗的檔案或檔案ID |
copyFiles 方法
複製檔案或檔案夾。
const result = await client.copyFiles(params, config, options)舉例:
複製多個檔案
const {items=[]} = await client.listFiles(req)
// 可以直接傳入 fileItem 數組:
await client.copyFiles(items, {to_parent_file_id, to_drive_id})對於複製單個檔案,可以重新命名
await client.copyFiles(item, { new_name: '新檔案名稱', ... })複製過程中取消複製
let stopFlag=false
// 取消方法
function cancel(){
stopFlag=true
}
await client.copyFiles(items, {
getStopFlag()=>{
return stopFlag
}
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | IFileItemKey[] | 是 | 要複製的檔案清單,其中的項可查看 IFileKey 類型 |
config | ICopyFilesConfig | 是 | 複製檔案相關配置 |
options | IPDSRequestConfig | 其它配置項 |
IFileItemKey
欄位 | 類型 | 必選 | 說明 |
drive_id | string | 雲端硬碟id。drive_id和share_id必選其一。 | |
share_id | string | 分享id。drive_id和share_id必選其一。 | |
file_id | string | 是 | 檔案或檔案夾ID。 |
parent_file_id | string | 是 | 上級檔案夾ID。 |
ICopyFilesConfig
欄位 | 類型 | 必選 | 說明 |
to_parent_file_id | string | 是 | 複製到該檔案夾下,檔案夾ID |
to_drive_id | string | 複製到目標雲端硬碟ID, 支援跨雲端硬碟複製。to_drive_id和to_share_id必選其一 | |
to_share_id | string | 複製到目標分享目錄ID。to_drive_id和to_share_id必選其一 | |
new_name | string | 對於單個檔案,可以重新命名。 | |
onProgress | (count,totoal)=>{} | 進度的回調,有兩個參數 (count, total) 。 | |
getStopFlag | ()=>boolean | 暫停方法。返回true則暫停。返回false則繼續。 |
返回
欄位 | 類型 | 必選 | 說明 |
result | ICopyFileRes[] | 是 | 操作結果清單 |
ICopyFileRes
欄位 | 類型 | 必選 | 說明 |
async_task_id | string | 非同步任務ID。 檔案夾才有。 | |
domain_id | string | Domain ID。 | |
drive_id | string | 雲端硬碟ID。drive_id 和 share_id 必選其一。 | |
share_id | string | 分享ID。drive_id 和 share_id 必選其一。 | |
file_id | string | 是 | 檔案ID。 |
moveFiles 方法
移動檔案或檔案夾。
const result = await client.moveFiles(params, config, options)舉例:
移動多個檔案。
const {items=[]} = await client.moveFiles(...)
// 可以直接傳入 fileItem 數組:
await client.moveFiles(items, {to_parent_file_id, to_drive_id })對於移動單個檔案,可以重新命名。
await client.moveFiles(item, { new_name: '新檔案名稱', ... })移動過程中取消複製。
let stopFlag=false
// 取消方法
function cancel(){
stopFlag=true
}
await client.moveFiles(items, {
getStopFlag()=>{
return stopFlag
}
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | IFileItemKey[] | 是 | 要移動的檔案清單,其中的項可查看 IFileKey 類型 |
config | ICopyFilesConfig | 是 | 移動檔案相關配置,請參考 copyFiles 方法的描述 |
options | IPDSRequestConfig | 其它配置項 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | ICopyFileRes[] | 是 | 移動結果清單。 請參考 copyFiles 方法的返回。 |
getAsyncTask 方法
擷取任務進度。
const result = await client.getAsyncTask(async_task_id, options)參數說明
欄位 | 類型 | 必選 | 說明 |
async_task_id | string | 是 | 任務ID。 |
options | IPDSRequestConfig | 其它配置項。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | object | 是 | 返回結果,具體請查看 IAsyncTaskRes 的說明 |
IAsyncTaskRes
欄位 | 類型 | 必選 | 說明 |
async_task_id | string | 是 | 非同步任務ID。 |
state | string | 是 | 狀態, Failed | Success |PartialSucceed | Running。 |
error_message | string | 訊息提示。 | |
error_code | number | 狀態為 Failed 時返回的資訊。 | |
url | string | archiveFile 介面最終打包任務成功之後返回的下載地址。 |
pollingAsyncTask 方法
輪詢擷取任務進度,直到擷取到最終結果。
const result = await client.getAsyncTask(async_task_id, ttl_ms options)參數說明
欄位 | 類型 | 必選 | 說明 |
async_task_id | string | 是 | 任務ID。 |
ttl_ms | number | 輪訓間隔時間, 單位ms,預設: 5000。 | |
options | IPDSRequestConfig | 其它配置項。 |
傳回值
欄位 | 類型 | 必選 | 說明 |
result | IAsyncTaskRes | 是 | 返回結果。 |