簡體   English   中英

Gitlab Docker Runner AWS CLI S3 同步問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM