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

GitHub Workflow中AWS S3同步:仅覆盖指定文件夹的配置验证

你的S3同步配置问题解析

你的修改配置存在几个问题,无法实现预期需求,正确的写法如下:

name: Copy files to the s3 website content bucket
if: ${{ success() }}
run: aws s3 sync ./pages/first-website s3://${{env.AWS_S3_BUCKET}}/pages/first-website --delete --acl public-read

问题点说明:

  • 本地路径不要加开头的/:GitHub Workflow的工作目录是项目根目录,用相对路径./pages/first-website(或直接pages/first-website)才能正确指向目标文件夹。
  • 多余的--include和--exclude完全没必要:当你把源目录指定为pages/first-website时,aws s3 sync只会同步这个目录下的所有内容到S3的对应路径,不会碰桶里的其他文件。加上--delete后,只会删除S3目标路径(s3://bucket/pages/first-website)里那些本地源目录不存在的旧文件/文件夹,不会影响桶内其他文件夹的内容。
  • 原配置里的--include "/pages/first-website"路径匹配错误:sync的过滤规则是基于源目录的相对路径,当源是pages/first-website,这里的include路径应该针对该目录下的文件而非绝对路径,且--exclude "*"会先排除所有内容,后续的include路径也匹配不到,反而会导致什么都同步不了。

验证逻辑:

这个正确命令会完成以下操作:

  1. 将本地pages/first-website下的所有文件和子文件夹同步到S3桶的pages/first-website路径下
  2. 删除S3该路径下存在但本地已删除的旧文件/文件夹
  3. 保持桶内其他路径的内容完全不动,仅处理指定文件夹

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:46:01