IoT File Service - Multi Part操作¶
分块上传¶
分块上传步骤如下:
启动文件上传¶
通过向上传请求提供 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