You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure存储块Blob合并连续块:能否用Put Block From Url拉取特定块?

使用Put Block From URL合并Azure Blob的连续块

完全可以通过Put Block From URL操作实现这个需求,无需将块拉取到本地。

关键是利用请求的范围参数,直接指定原Blob中目标连续块对应的字节区间,Azure Blob服务会在云端完成内容的拉取与新块的创建,全程不需要本地参与。

具体实现步骤

  • 计算目标字节范围:
    按Blob中块的上传顺序,累加你要合并的那组连续块的大小,算出这组块对应的起始字节偏移量(第一个块的起始位置,通常从0开始)和结束字节偏移量(最后一个块的结束位置减1,因为HTTP Range参数的bytes=start-end是包含end位置的)。比如要合并3个大小分别为100MiB、200MiB、150MiB的连续块,总长度450MiB,对应的范围就是bytes=0-471859199(450MiB换算为字节是45010241024=471859200,所以结束位置是471859200-1)。
  • 发起Put Block From URL请求:
    指定目标Blob的块ID(用于后续提交块列表),在请求头中配置:
    • x-ms-copy-source:填入原Blob的完整URL
    • x-ms-copy-source-range:设置为刚才计算好的字节范围,格式如bytes=0-471859199
      确保这个范围的总长度不超过Azure Blob服务的单块最大限制(当前标准块Blob单块最大为4000MiB,追加块Blob为100MiB)。
  • 提交新块列表:
    完成所有需要合并的块操作后,调用Put Block List接口,提交包含新块ID的块列表,替换掉原来的连续块ID,完成Blob的重组。

注意事项

  • 原Blob必须具备可读取权限,请求需携带有效的身份凭证。
  • 如果在同一个Blob内合并块,建议先上传合并后的新块,再通过Put Block List替换原有块ID,避免覆盖未处理的块数据。
  • 字节范围计算必须准确,否则会导致新块数据缺失或冗余。

内容的提问来源于stack exchange,提问作者OrdinaryOrange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:09:53