Class 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