创建分片任务
概述
分片上传的原理是将一个大文件拆分成多个小文件,然后再依次(或并发)上传到服务器,最后再将这些小文件合并成完整的文件。分片上传具有以下优点:
- 通过拆分成多个小文件的形式,可以并发上传到服务器,上传速度更快一些
- 如果网络不好导致上传中断了,分片上传可以只补充那些上传失败的分片,而不需要重新上传整个文件
- 如果降低接口上传文修护的大小,保护服务器安全
本接口用于创建分片任务,为上传分片数据作准备。本接口会返回分片的大小,并计算出该文件将会被分割成多少个分片。开发者在调用本接口后,需要在前端将待上传的文件切割成接口指定大小的数据块,然后再调用上传分片数据接口。
接口描述
请求方法及地址
// code 为存储桶(bucket)标识
POST {schema}://{ip}:{port}/storage/api/buckets/{code}/objects/multiparts
权限
central:object:create
或central:object:all
请求参数(application/json)
参数名 | 类型 | 可空 | 默认值 | 说明 |
---|---|---|---|---|
token | String | 否 | 无 | 访问凭证,见接口总体说明[链接]。 |
digest | String | 否 | 无 | 待上传文件摘要(SHA256)。 |
size | Number | 否 | 无 | 待上传文件大小。 |
响应示例
json
{
"id": "Qf5nV0UCH2DEBY1ENhh",
"digest": "01b01aa5b8baefcd741e5b5b54aa9737fb580c708d76db9a4427bcf84118ab99",
"size": 108954352,
"chunkSize": 5242880,
"chunkCount": 21,
"chunks": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
}
响应说明
字段名 | 类型 | 说明 |
---|---|---|
id | String | 分片上传任务主键 |
digest | String | 文件摘要(SHA256) |
size | Number | 文件大小 |
chunkSize | Number | 分片大小 |
chunkCount | Number | 分片数量 |
chunks | List<Number> | 待上传的分片下标 |