Class ApiUploadV1MakeFile
- java.lang.Object
-
- com.qiniu.storage.Api
-
- com.qiniu.storage.ApiUpload
-
- com.qiniu.storage.ApiUploadV1MakeFile
-
public class ApiUploadV1MakeFile extends ApiUpload
分片上传 v1 版 api: 创建文件 将上传好的所有数据块按指定顺序合并成一个资源文件。一个文件被分成多个 block ,一个块可以被分成多个 chunk |----------------------------- file -----------------------------| |------ block ------|------ block ------|------ block ------|... |- chunk -|- chunk -|- chunk -|- chunk -|- chunk -|- chunk -|... |- ctx01 -|- ctx02 -|- ctx10 -|- ctx12 -|- ctx20 -|- ctx22 -|... allBlockCtx = [ctx02, ctx12, ctx22, ...]
上传过程: 1. 把文件分成 block,把块分成 chunk 2. 调用
ApiUploadV1MakeBlock
创建 block,并附带 block 的第一个 chunk 3. 如果 block 中还有 chunk 未上传,则调用ApiUploadV1PutChunk
上传 chunk, 直到该 block 中所有的 chunk 上传完毕 4. 回到【步骤 2】继续上传 block,循环【步骤 2】~【步骤 3】直到所有 block 上传完毕 3. 调用ApiUploadV1MakeFile
根据 allBlockCtx 创建文件注意事项: 1. 除了最后一个 block 外, 其他 block 的大小必须为 4M 2. block 中所有的 chunk size 总和必须和 block size 相同 3. 一个 block 中包含 1个 或多个 chunk 4. 同一个 block 中的块上传需要依赖该块中上一次上传的返回的 ctx, 所以同一个块的上传无法实现并发, 如果想实现并发,可以使一个 block 中仅包含一个 chunk, 也即 chunk size = 4M, make block 接口 不依赖 ctx,可以实现并发;需要注意的一点是 ctx 的顺序必须与 block 在文件中的顺序一致。
https://developer.qiniu.com/kodo/1287/mkfile
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ApiUploadV1MakeFile.Request
请求信息static class
ApiUploadV1MakeFile.Response
响应信息
-
Constructor Summary
Constructors Constructor Description ApiUploadV1MakeFile(Client client)
api 构建函数
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ApiUploadV1MakeFile.Response
request(ApiUploadV1MakeFile.Request request)
发起请求
-
-
-
Constructor Detail
-
ApiUploadV1MakeFile
public ApiUploadV1MakeFile(Client client)
api 构建函数- Parameters:
client
- 请求client【必须】
-
-
Method Detail
-
request
public ApiUploadV1MakeFile.Response request(ApiUploadV1MakeFile.Request request) throws QiniuException
发起请求- Parameters:
request
- 请求对象【必须】- Returns:
- 响应对象
- Throws:
QiniuException
- 请求异常
-
-