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

Ubuntu代理发布流水线中azcopy复制JMeter报告到Azure Blob成功但无文件

问题描述

在Azure发布流水线中使用Ubuntu代理时,因官方Azure Blob复制任务不支持Linux代理,尝试在Azure CLI任务中通过azcopy命令将JMeter生成的Report文件夹递归上传到Blob容器。任务执行后返回操作成功提示,但实际Blob容器内未出现任何上传的文件。

原执行命令

azcopy copy '$(System.DefaultWorkingDirectory)/Report' 'https://account.blob.core.windows.net/container?sp=racwdl&st=2021-04-22T12:12:49Z&se=2022-06-01T20:12:49Z&spr=https&sv=2020-02-10&sr=c&sig=xxxx' --recursive=true

无文件上传的核心成因
  • SAS令牌格式转义错误:命令中的SAS参数使用了&的HTML实体编码,azcopy解析时会将这串编码原样当作SAS字符串的一部分,导致SAS校验逻辑异常。这种场景下azcopy不会直接抛出权限错误,会静默完成空任务后返回成功提示。容器级SAS的参数分隔符应直接使用原生&,不需要做HTML转义。
  • 本地路径匹配偏差:azcopy的递归上传逻辑中,若要将本地Report文件夹下的所有内容直接上传到Blob容器根目录,需要在本地源路径末尾补充/*通配符。原命令直接指向Report文件夹路径时,部分版本azcopy会将整个Report识别为虚拟根目录,扫描不到内部文件后直接返回成功状态,不会触发实际上传动作。
  • 系统时间与SAS有效期偏差:当流水线代理的系统时间和SAS设定的生效/过期时间不匹配时,azcopy不会主动抛出SAS过期报错,会静默跳过所有文件传输动作,最终输出零文件传输的成功结果。
  • 日志判断偏差:azcopy返回的"操作成功"仅代表任务流程执行完成,不代表有实际文件完成传输。如果日志中显示传输文件计数为0,本质就是没有匹配到可上传的有效文件。

修正后的正确命令
azcopy copy '$(System.DefaultWorkingDirectory)/Report/*' 'https://account.blob.core.windows.net/container?sp=racwdl&st=2021-04-22T12:12:49Z&se=2022-06-01T20:12:49Z&spr=https&sv=2020-02-10&sr=c&sig=xxxx' --recursive=true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 23:15:03