我想在我的 s3 存储桶中放置一个对象,该对象将重定向到我的代码构建徽章。
我得到带有以下命令的代码构建徽章:
CODEBUILD_BADGE_URL=$(
aws codebuild batch-get-projects
--name Push
--query "projects[0].badge.badgeRequestUrl"
--output text
)
接下来,我获得unknown.svg
徽章,以防我的代码构建徽章 url 发生变化,并设置对象--metadata
以配置website-redirect-location
。
我这样做的尝试是:
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"
我还添加了此元数据,以防上述内容错误:
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
徽章。
该请求具有以下响应标头:
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?这是解决此类问题的合理方法吗?
等待一天左右后它起作用了,我只需要:
aws s3 cp ./badge.svg s3://example.com/badge --metadata "Website-Redirect-Location=$CODEBUILD_BADGE_URL"
无需--website-redirect