本文件描述网盘与相册服务的文件打包下载功能, 支持将多个文件/文件夹打包成一个压缩包下载。您可以通过 PDS 提供的默认客户端使用文件打包下载, 也可以参考该文件调用 API 实现文件打包下载。
文件打包下载属于增值功能, 网盘与相册服务开发版中默认未开启, 如需使用请联系网盘管理员, 通过控制台自行开通。
网盘与相册服务开发版, 对增值服务会进行单独收费, 更多信息, 请参见打包下载资费项说明。
功能限制
打包下载的压缩包格式仅支持 zip。
打包下载前台文件列表最大支持 500 个, 递归遍历后台所有文件总数最大支持 10,000 个。
打包下载文件总大小最大支持 10GB。
API 调用流程及示例
流程说明
说明
调用方通过打包下载接口, 传入待打包的文件列表, 获取到打包任务的任务ID。
文件打包下载是一个耗时的过程, 是后台异步实现, 需要调用方轮询任务ID, 通过任务查询接口查询任务状态。
任务成功后返回打包文件的签名 URL, 直接通过 HTTP Get 请求可以下载文件具体内容。注意签名时效默认 10 分钟。
文件打包下载
POST /v2/file/archive_files
请求参数:
名称 | 类型 | 必选 | 说明 |
name | string | 是 | 打包生成的压缩包名称 |
file_ids | []string | 是 | 待打包文件列表, 传入一组文件 ID |
share_id | string | 否 | 分享ID,分享下使用,此时不能传入drive_id |
drive_id | string | 否 | 空间 ID,drive ID和 share ID互斥,必须且只能传一个 |
返回参数:
字段名称 | 类型 | 描述 |
async_task_id | string | 打包下载任务 ID |
请求示例
文件打包下载时, 需要指定等待打包的文件列表和产生的压缩包名称。
这里将 drive1 下的 testFile1, testFile2 打包成一个 test_archive_files.zip 压缩文件
{
"drive_id": "drive1",
"file_ids": ["testFile1", "testFile2"],
"name": "test_archive_files.zip"
}响应示例
返回的 http.code=202, 表示打包下载任务已接受, 正在后台执行。 因为打包下载需要遍历所有文件, 此操作是一个异步过程, 需要一段时间才能执行完成。如果需要查询任务状态, 通过调用/v2/async_task/get 接口, 传入返回的 async_task_id 参数来查询
{
"async_task_id": "testAsyncTaskId"
}异步任务查询
参考: 获取异步任务信息
异步任务查询任务状态成功后, 返回的 URL 字段会包含生成压缩包的下载链接, 直接通过 Get URL 就可以下载压缩包文件。
常见问题
文件打包下载需要什么权限?
文件打包下载功能,需要对所有待打包文件有可见和下载权限。
使用文件打包下载功能的过程中, 遇到问题请联系我们。