文件打包下载

更新时间:
复制 MD 格式

本文件描述网盘与相册服务的文件打包下载功能, 支持将多个文件/文件夹打包成一个压缩包下载。您可以通过 PDS 提供的默认客户端使用文件打包下载, 也可以参考该文件调用 API 实现文件打包下载。

文件打包下载属于增值功能, 网盘与相册服务开发版中默认未开启, 如需使用请联系网盘管理员, 通过控制台自行开通。

网盘与相册服务开发版, 对增值服务会进行单独收费, 更多信息, 请参见打包下载资费项说明

功能限制

  • 打包下载的压缩包格式仅支持 zip。

  • 打包下载前台文件列表最大支持 500 个, 递归遍历后台所有文件总数最大支持 10,000 个。

  • 打包下载文件总大小最大支持 10GB。

API 调用流程及示例

流程说明

image.svg

说明

  1. 调用方通过打包下载接口, 传入待打包的文件列表, 获取到打包任务的任务ID。

  2. 文件打包下载是一个耗时的过程, 是后台异步实现, 需要调用方轮询任务ID, 通过任务查询接口查询任务状态。

  3. 任务成功后返回打包文件的签名 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"
}

异步任务查询

参考: 获取异步任务信息

调试: GetAsyncTask - 获取异步任务信息

异步任务查询任务状态成功后, 返回的 URL 字段会包含生成压缩包的下载链接, 直接通过 Get URL 就可以下载压缩包文件。

常见问题

  1. 文件打包下载需要什么权限?

文件打包下载功能,需要对所有待打包文件有可见和下载权限。

使用文件打包下载功能的过程中, 遇到问题请联系我们