Skip to content

IoT File Service - Multi Part操作

分块上传

分块上传步骤如下:

  1. 启动分块上传
  2. 上传文件分块
  3. 完成分块上传

启动文件上传

通过向上传请求提供 upload=start 查询参数来启动分块上传。在下面的示例请求中,为子目录 optionalDirectory 中的文件 exampleFile 启动分块上传:

{{ gatewayUrl }}/api/iotfile/v3/files/{{ entityId }}/optionalDirectory/exampleFile?upload=start

上传文件分块

上传文件分块时,指定分块号为查询参数。下列规则适用于文件分块:

  • 可接受的分块号范围是 1 到 1,000,支持异步上传。
  • 所有分块上传后,其分块号必须是按顺序排列的。
  • 每个分块的大小必须至少为 5 MB。
  • 未完成的文件上传中的分块将在 2 天后自动删除。
  • 如果相同的分块号使用了两次,则现有分块会被覆盖。
{{ gatewayUrl }}/api/iotfile/v3/files/{{ entityId }}/optionalDirectory/exampleFile?part=1

完成上传

提供请求参数 upload=complete 以完成分块上传。下面的示例将完成子目录 optionalDirectory 中文件 exampleFile 的分块上传。分块上传完成请求接受小于允许的分块大小最小限值的文件分块,并将其视为最后一个分块。

{{ gatewayUrl }}/api/iotfile/v3/files/{{ entityId }}/optionalDirectory/exampleFile?upload=complete

中止分块上传

使用 upload=abort 参数中止分块上传。将以物理方式删除选定的分块上传的所有信息。

{{ gatewayUrl }}/api/iotfile/v3/files/{{ entityId }}/optionalDirectory/exampleFile?upload=abort

分块更新

分块上传的每个请求中指定 If-Match 消息头参数,以通过分块上传更新现有文件。

列出当前分块上传

使用指向 filelist 端点的 GET 请求列出指定文件的当前文件分块。

文件分块列表中的每个条目包含:

  • objectKey:由 {tenant storage prefix}/{entityId}/{filepath} 组成的文件密钥
  • partNo:指定的分块号
  • created:分块完成上传的 UTC 时间(毫秒)

示例请求:

{{ gatewayUrl }}/api/iotfile/v3/fileslist/{{ entityId }}/optionalDirectory/exampleFile

示例响应:

[
 {
 "objectKey": "iotteni/00189ab4c65243bb9d77f17332dd570a/optionalDirectory/exampleFile",
 "partNo":1,
 "created":1540509915000
 },
 {
 "objectKey": "iotteni/00189ab4c65243bb9d77f17332dd570a/optionalDirectory/exampleFile",
 "partNo":2,
 "created":1540509931000
 }
]

分块下载

请示示例:

  gatewayUrl/api/iotfile/v3/files/entityId/optionalDirectory/exampleFile
您需要在头中指定 range 值, 例如 bytes=200-400

响应示例:

  206 Partial content of the file

使用 Range 参数下载现有文件的一部分,并指定要下载的字节范围,例如:bytes=1-100


Last update: June 30, 2020