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

Azure DevOps中S3Download任务因ENOENT失败,已正确队列下载项

问题描述

已在Azure DevOps的服务连接中配置AWS服务连接,用于拉取iOS构建所需图片资源。凭证正常,任务能正确列出S3存储桶及其子文件夹中的文件,但在构建代理上保存文件时出错。

管道中S3Download任务配置

- task: S3Download@1
  inputs:
    awsCredientials: 'AWSCREDS'
    regionName: 'us-somewhere-1'
    bucketName: 'bucketname'
    globExpressions: 'NameOfFolderToSearchOnS3/**'
    targetFolder: '$(Build.ArtifactStagingDirectory)'

任务错误日志

...
112 Queueing download NameOfFolderToSearchOnS3/Splash Screens/ios/iphone-portrait-ios-8,8@retina.png
113 Queueing download NameOfFolderToSearchOnS3/Splash Screens/ios/iphone-portrait-ios-5,6@2x.png
##[error]Error: ENOENT: no such file or directory, open '/Users/runner/work/1/a/NameOfFolderToSearchOnS3/
Finishing: S3Download

疑问:是否需要在下载前手动创建文件夹及子文件夹?该下载任务是否支持自动创建目录结构?已尝试修改目标文件夹、提前创建NameOfFolderToSearchOnS3文件夹,但嵌套子文件夹处仍报错。

解决方案
  • 检查并调整S3Download@1的**flattenFolders参数**:默认该参数为false,会保留S3上的完整目录结构。如果路径包含空格、逗号等特殊字符,可能导致任务无法自动创建嵌套目录。可以尝试添加flattenFolders: true,将所有文件直接下载到目标根目录,验证是否能正常完成下载:
    - task: S3Download@1
      inputs:
        awsCredientials: 'AWSCREDS'
        regionName: 'us-somewhere-1'
        bucketName: 'bucketname'
        globExpressions: 'NameOfFolderToSearchOnS3/**'
        targetFolder: '$(Build.ArtifactStagingDirectory)'
        flattenFolders: true
    
  • 手动递归创建完整嵌套目录:仅创建上层文件夹不足以解决问题,需要提前生成所有嵌套子目录。在S3Download任务前添加Bash任务,执行递归创建命令:
    mkdir -p "$(Build.ArtifactStagingDirectory)/NameOfFolderToSearchOnS3/Splash Screens/ios"
    
    若需要更通用的处理(比如目录结构不确定),可以用AWS CLI先列出S3上的目录,再批量创建:
    aws s3 ls s3://bucketname/NameOfFolderToSearchOnS3/ --recursive | grep -v "\.png$" | awk '{print $4}' | xargs -I {} mkdir -p "$(Build.ArtifactStagingDirectory)/{}"
    
  • 替换路径中的特殊字符:如果文件名/路径里的逗号、空格是问题根源,可以在下载后重命名文件,或者在S3存储端调整路径命名(若业务允许)。
  • 改用AWS CLI直接下载:如果官方S3Download任务存在兼容性问题,直接使用AWS CLI命令下载,该命令会自动创建所需目录结构,稳定性更高:
    aws s3 cp s3://bucketname/NameOfFolderToSearchOnS3/ "$(Build.ArtifactStagingDirectory)/NameOfFolderToSearchOnS3/" --recursive
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:00:28