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

AWS CodeBuild中ls可见文件却无法通过aws s3 cp传到S3

报错原因分析
  • 核心诱因:aws s3 cp命令额外添加了--recursive参数
    • --recursive的设计用途是递归复制目录下的全部批量文件,当传入单个文件路径时,AWS CLI会自动将该路径判定为目录,因此日志中出现了带末尾斜杠的/codebuild/output/src985236234/src/backup.sql/路径,系统检索该目录自然会提示不存在。
  • 其他不规范配置:
    • 数据库备份操作放在install阶段不符合CodeBuild的阶段职责划分,install阶段仅用于安装构建依赖,建议迁移到build阶段
    • S3目标路径未补全末尾斜杠,易引发CLI路径解析歧义
    • 原mysqldump命令中-p参数与后续选项间的空格被打码遗漏,实际运行时会触发参数解析错误
修正后的Buildspec配置
version: 0.2 
phases: 
  install: 
    commands: 
      - echo Installing MySQL 
      - apt update 
      - apt-get install mysql-client -y 
      - mysqldump --version
  build:
    commands:
      # 补全-p参数与后续选项的空格
      - mysqldump -h ***** -u $User -p**** --no-data --routines --triggers -f testdb > ./backup.sql 
      - ls
      # 移除多余的--recursive参数,S3路径末尾补斜杠
      - aws s3 cp backup.sql s3://dev-test/ --acl public-read --cache-control "max-age=100"
  post_build: 
    commands: 
      - echo Build completed on `date` 

额外提示:如果需要指定备份文件在S3桶中的存储路径,可以直接在目标地址补全文件名,例如s3://dev-test/backup/20240520.sql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 22:27:02