本篇主要介紹分享連結相關的介面。
請求參數中的 options: IPDSRequestConfig 基於 axios 的 request config 封裝,詳情請看:AxiosRequestConfig。
createShareLink 方法
建立分享連結
const result = await client.createShareLink(params, options)舉例
await client.createShareLink({
description: 'test',
drive_id: '1060',
expiration: '2021-12-08T15:59:59.999Z',
file_id_list: ['61a49e39d687d40967164cf98ef65ab5bb554f53'],
share_pwd: '831956',
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | ICreateShareLinReq | 是 | 建立分享參數 |
options | IPDSRequestConfig | 其他配置項 |
ICreateShareLinReq
欄位 | 類型 | 必選 | 說明 |
description | string | 描述資訊 | |
drive_id | string | 是 | 雲端硬碟ID |
share_pwd | string | 提取碼,0-64個字元。長度0表示沒有提取碼 | |
file_id_list | string[] | 是 | (標準模式才有效)。一組檔案或者檔案加的列表,上限:100 |
file_path_list | string[] | 是 | (託管模式下有效)與 file_id_list 之間只需傳一個 |
expiration | string | 是 | 失效時間點。RFC3339格式 比如:"2020-06-28T11:33:00.000+08:00" 永久有效:"" |
返回
欄位 | 類型 | 必選 | 說明 |
result | IShareLinkItem | 是 | 分享連結詳情 |
cancelShareLink 方法
取消分享
await client.cancelShareLink(params, options)舉例
await client.cancelShareLink({
share_id: 'YgHgBeXGZWr'
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | Object | 是 | 取消分享參數 |
options | IPDSRequestConfig | 其他配置項 |
params
欄位 | 類型 | 必選 | 說明 |
share_id | string | 是 | 分享id |
返回
無
listShareLinks 方法
列舉分享
const result = await client.listShareLinks(params, options)舉例
const {items=[], next_marker} = await client.listShareLinks({
creator: 'user_id',
marker: '',
limit: 100,
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | Object | 是 | 列舉分享參數 |
options | IPDSRequestConfig | 其他配置項 |
params
欄位 | 類型 | 必選 | 說明 |
limit | number | 返回資料最大條數,範圍:[1-100],預設:100 | |
marker | string | 查詢起始標識 | |
creator | string | 一 、管理員: 1.1 不傳,查所有使用者 1.2 傳指定user_id,查指定使用者的分享。 二、普通使用者: 2.1 不傳,查自己 2.2 傳指定user_id,只能是自己,否則報403 |
返回
欄位 | 類型 | 必選 | 說明 |
result | IListRes<IShareLinkItem> | 是 | 結果 |
IListRes
欄位 | 類型 | 必選 | 說明 |
items | IShareLinkItem[] | 是 | IShareLinkItem數組 |
next_marker | string | 查詢下一頁的起始標識 |
IShareLinkItem
欄位 | 類型 | 說明 |
share_id | string | 分享碼 |
share_pwd | string | 提取碼。如果沒有傳遞,那麼這裡返回空串,表示不需要提取碼 |
share_msg | string | 分享口令 |
share_url | string | 分享URL地址 |
share_policy | 'url' | 'msg' | 分享策略 url: 使用連結進行分享 msg: 使用口令進行分享 |
description | string | 描述 |
share_name | string | 分享名稱 |
download_count | number | 下載次數 |
preview_count | number | 查看次數 |
save_count | number | 儲存次數 |
drive_id | string | 雲端硬碟ID |
share_pwd | string | 提取碼,0-64個字元。長度0表示沒有提取碼 |
file_id_list | string[] | 標準模式返回此欄位 |
file_path_list | string[] | 託管模式返回此欄位 |
expiration | Date | 失效時間點。RFC3339格式 比如:"2020-06-28T11:33:00.000+08:00" 永久有效:"" |
expired | boolean | 是否到期 |
status | 'enabled' | 'disabled' | 分享狀態 |
creator | string | 建立者id |
created_at | string | 建立時間 |
updated_at | string | 更新時間 |
getShareLinkByAnonymous 方法
匿名(無需token)擷取分享資訊。
const result = await client.getShareLinkByAnonymous(params, options)舉例
const domain_id = '您的domainID'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})
let info = client.getShareLinkByAnonymous({
share_id: 'xxxxxx'
})參數說明
欄位 | 類型 | 必選 | 說明 |
params | Object | 是 | 參數 |
options | IPDSRequestConfig | 其他配置項 |
params
欄位 | 類型 | 必選 | 說明 |
share_id | string | 是 | 分享ID |
返回
欄位 | 類型 | 必選 | 說明 |
result | IAnonymousShareLinkItem | 是 | 結果 |
IAnonymousShareLinkItem
欄位 | 類型 | 必選 | 說明 |
avatar | string | 是 | 分享者頭像 |
creator_id | string | 是 | 建立者使用者ID |
creator_name | string | 是 | 建立者使用者暱稱 |
creator_phone | string | 建立者手機號 | |
disable_download | boolean | 禁止下載 | |
disable_preview | boolean | 禁止預覽 | |
disable_save | boolean | 禁止儲存 | |
enable_upload | boolean | 允許上傳 | |
expiration | Date | 到期時間 | |
preview_limit | number | 預覽次數限制 | |
require_login | boolean | 需要登入才能查看 | |
save_download_limit | number | 儲存或下載次數限制 | |
share_name | string | 分享連結名稱 | |
updated_at | string | 最後修改時間 |
getShareToken 方法
匿名(無需token)擷取分享Token。
什麼是分享token (share_token)?
分享 token 是一種臨時token,可以替代 access_token 調用某些API,比如 listFiles,從而實現使用者未登入時訪問分享頁面內容的功能。
const result = await client.getShareToken(params, options)舉例
const domain_id = '您的domainID'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`
})
try {
let info = client.getShareToken({
share_id: 'xxxxxx',
// share_pwd: '提取碼' // 如果有,請輸入提取碼
})
}catch(e){
// 如果需要提取碼,但是上面沒有傳入,會報錯
if (e.code == 'InvalidResource.SharePwd'){
// 需要提取碼。
}
}參數說明
欄位 | 類型 | 必選 | 說明 |
params | Object | 是 | 參數 |
options | IPDSRequestConfig | 其他配置項 |
params
欄位 | 類型 | 必選 | 說明 |
share_id | string | 是 | 分享ID |
share_pwd | string | 提取碼 |
返回
欄位 | 類型 | 必選 | 說明 |
result | IShareToken | 是 | 結果 |
IShareToken
欄位 | 類型 | 必選 | 說明 |
share_token | string | 是 | 分享Token |
expire_time | string | 是 | 到期時間 |
expires_in | string | 是 | 有效期間,單位秒 |
使用分享Token舉例
擷取分享檔案清單。
const share_token = '得到的分享Token'
const share_id = '您的分享ID'
const domain_id = '您的domainID'
const client = new PDSClient({
api_endpoint: `https://${domain_id}.api.aliyunpds.com`,
share_token,
})
let {items=[], next_marker} = client.listFiles({
share_id,
parent_file_id: 'root'
},
/*
{
headers: {
'x-share-token': share_token
}
} */
)