![](/img/trans.png)
[英]Issue with aws cli with s3 sync not copying files from sub folder
[英]Gitlab Docker Runner AWS CLI S3 Sync Problem
我正在尝试将我们的网站资产之一保留在 Gitlab 中。 在每个合并请求中,我会将更改推送到 S3 并使 CloudFront 缓存失效。 这就是问题的故事。 注意:我在 static 网站上尝试了这种方法并且效果很好。
第一次尝试:我尝试使用 --exclude 和 --include 过滤器同步更改。
aws s3 sync . s3://$BUCKET_NAME --exclude '*' --include 'assets/*' --include 'css/*' --include 'files/*'
结果:完美的本地环境。 但是在管道中,尝试同步所有内容并最终出错。 (尝试超时和调试标志,但没有任何改变。我无法跳过错误)最后我注意到,CLI 跟踪文件的修改日期。 我决定尝试使用 --size-only 标志。
第二次尝试:
aws s3 sync . s3://S3_BUCKET --size-only
结果:
致命错误:调用 ListObjectsV2 操作时发生错误 (AccessDenied):访问被拒绝
用户拥有 s3 完全访问权限(测试目的)。 此外,存储桶有一个策略;
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::**58**439**:user/user"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::bucket",
"arn:aws:s3:::bucket/*"
]
}
所以,我被困在这一点上。
任何帮助表示赞赏。
我终于找到了问题的根源。 文件名包含 Unicode 字符。
这个问题页面对我帮助很大。 https://github.com/aws/aws-cli/issues/1437
在我的 gitlab-ci.yalm 文件中,我刚刚添加了这些行。
variables:
LC_ALL: en_US.UTF-8
一切都恢复了正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.