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

Azure Data Factory通过REST API重命名文件后新文件为空问题求助

Azure存储文件重命名后为空的问题解决

当你用ADF的Web活动调用Azure存储REST API重命名文件时,新文件为空的核心原因是**x-ms-content-length请求头的值不正确**。

问题本质

Azure存储的文件重命名API(通过PUT请求+x-ms-rename-source头)要求x-ms-content-length必须匹配原文件的实际字节大小。如果这个值留空、填错或者不填,存储服务会误解你的请求:要么返回必填错误,要么直接创建一个对应长度的空文件,而非执行原文件的重命名/移动逻辑。

具体解决步骤

  1. 获取原文件的字节大小
    在ADF管道中添加一个「获取元数据」(Get Metadata)活动,配置指向要重命名的原文件,在「字段列表」里勾选Size属性。

  2. 正确设置请求头
    在Web活动的请求头中,将x-ms-content-length的值绑定到获取元数据活动的输出结果,示例表达式:

    @activity('Get Metadata1').output.size
    

    完整的请求头配置如下:

    x-ms-date: <ADF生成的值>  
    x-ms-version: 2021-08-06  
    x-ms-rename-source: /<文件共享名称>/<原文件完整路径>  
    x-ms-type: file  
    x-ms-content-length: @activity('Get Metadata1').output.size
    

    注意x-ms-rename-source的格式必须以斜杠开头,比如/my-share/folder/original-file.xlsx。

  3. 确认请求方法和权限

    • Web活动的请求方法必须设为PUT,目标URL是新文件的完整REST路径(比如https://<存储账户名>.file.core.windows.net/<文件共享名称>/<新文件路径>)。
    • 确保Web活动使用的授权方式(SAS密钥或托管标识)拥有原文件的读取权限和目标路径的写入权限。

额外验证点

  • 如果仍有问题,检查x-ms-version是否与存储账户兼容,可尝试更新为较新的版本(如2023-11-03)。
  • 确认x-ms-rename-source指向的原文件确实存在,路径无拼写错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:05:34