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

使用ADF Web活动读取并回传Azure Blob中Zip文件时出现损坏

问题解决方法

根因分析

ADF Web活动默认将HTTP响应解析为UTF-8文本,处理Zip这类二进制文件时,文本编码会破坏原始二进制数据的完整性,导致后续生成的文件损坏——即使添加Content-Type头,也无法修复编码错误带来的数据丢失。

解决方案一:调整Web活动的二进制响应配置

  1. 修改GET Web活动

    • 打开GET类型的Web活动,切换到JSON视图,添加"binaryResponse": true配置,确保活动以二进制格式返回Blob内容:
      {
        "name": "get_blob",
        "type": "WebActivity",
        "typeProperties": {
          "url": "<你的Blob访问URL(带SAS)>",
          "method": "GET",
          "binaryResponse": true
        }
      }
      
    • 该配置会让活动将二进制文件内容以Base64编码的形式返回,避免文本编码损坏。
  2. 调整PUT Web活动的请求体

    • 将PUT活动的请求体设置为@base64ToString(activity('get_blob').output.response),将Base64编码的内容转换回原始二进制数据。
    • 保留Content-Type: application/x-zip-compressed请求头,确保目标服务识别文件类型。

解决方案二:使用Copy活动替代Web活动(更推荐)

ADF的Copy活动原生支持二进制文件的传输,无需手动处理编码,更适合这类场景:

  • 源数据集:配置为Azure Blob Storage,选择对应的Zip文件。
  • 接收器数据集:如果是Blob Storage,直接配置为对应容器;如果是外部站点,选择HTTP接收器,设置Request method为PUT,并在接收器设置中启用二进制复制模式。
  • Copy活动会自动处理二进制数据的完整传输,避免编码错误导致的文件损坏。

验证步骤

  1. 重新运行管道。
  2. 下载生成的Zip文件,尝试解压验证完整性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 16:05:02