![](/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.