关于Amazon Web Services:S3使用x-amz-website-redirect-location标头重定向到代码构建徽章

S3 redirect to codebuild badge with x-amz-website-redirect-location header

我想在s3存储桶中放置一个对象,该对象将重定向到我的codebuild徽章。

我使用以下命令获取代码构建徽章:

1
2
3
4
5
6
CODEBUILD_BADGE_URL=$(\\
  aws codebuild batch-get-projects \\
    --name Push \\
    --query"projects[0].badge.badgeRequestUrl" \\
    --output text \\
)

接下来,我得到unknown.svg徽章,以防我的代码构建徽章url发生更改,并将对象--metadata设置为配置website-redirect-location

我这样做的尝试是:

1
2
curl https://s3.amazonaws.com/codefactory-us-east-1-prod-default-build-badges/unknown.svg > ./badge.svg
aws s3 cp ./badge.svg s3://example.com/badge --metadata"Website-Redirect-Location=$CODEBUILD_BADGE_URL"

我还添加了此元数据,以防万一以上错误:

1
aws s3 cp ./badge.svg s3://example.com/badge --website-redirect $CODEBUILD_BADGE_URL

当我访问:http://example.com/badge或https://s3.amazonaws.com/example.com/badge时,我只得到了unknown.svg徽章。

该请求具有以下响应头:

1
2
3
x-amz-meta-website-redirect-location: https://codebuild.us-east-1.amazonaws.com/badges?uuid=eyJlbmlong%3D&branch=master
x-amz-request-id: D83EBREQUESTID
x-amz-website-redirect-location: https://codebuild.us-east-1.amazonaws.com/badges?uuid=eyJlbmlong%3D&branch=master

和200响应码。

我的example.com存储桶属性已将Static website hosting配置为Bucket hosting

如何配置此对象以重定向到所需的代码生成URL?这是解决此类问题的合理方法吗?


等待了一天左右后就可以了,我只需要:

1
aws s3 cp ./badge.svg s3://example.com/badge --metadata"Website-Redirect-Location=$CODEBUILD_BADGE_URL"

不需要--website-redirect