Class ApiUploadV1PutChunk
- java.lang.Object
-
- com.qiniu.storage.Api
-
- com.qiniu.storage.ApiUpload
-
- com.qiniu.storage.ApiUploadV1PutChunk
-
public class ApiUploadV1PutChunk 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/1251/bput
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ApiUploadV1PutChunk.Request
请求信息static class
ApiUploadV1PutChunk.Response
响应信息
-
Constructor Summary
Constructors Constructor Description ApiUploadV1PutChunk(Client client)
api 构建函数
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ApiUploadV1PutChunk.Response
request(ApiUploadV1PutChunk.Request request)
发起请求
-
-
-
Constructor Detail
-
ApiUploadV1PutChunk
public ApiUploadV1PutChunk(Client client)
api 构建函数- Parameters:
client
- 请求client【必须】
-
-
Method Detail
-
request
public ApiUploadV1PutChunk.Response request(ApiUploadV1PutChunk.Request request) throws QiniuException
发起请求- Parameters:
request
- 请求对象【必须】- Returns:
- 响应对象
- Throws:
QiniuException
- 请求异常
-
-