amazon-web-services - S3 使用 x-amz-website-redirect-location 标头重定向到 codebuild 徽章
问题描述
我想在我的 s3 存储桶中放置一个对象,该对象将重定向到我的代码构建徽章。
我使用以下命令获得 codebuild 徽章:
CODEBUILD_BADGE_URL=$(\
aws codebuild batch-get-projects \
--name Push \
--query "projects[0].badge.badgeRequestUrl" \
--output text \
)
接下来,unknown.svg
如果我的 codebuild 徽章 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
.
如何配置此对象以重定向到所需的 codebuild url?这是解决此类问题的合理方法吗?
解决方案
等了一天左右就成功了,我只需要:
aws s3 cp ./badge.svg s3://example.com/badge --metadata "Website-Redirect-Location=$CODEBUILD_BADGE_URL"
不需要--website-redirect
推荐阅读
- sql-server - SQL 根据条件组从一个表更新到另一个表
- android - 如何包含
在 android cmake 项目中 - angularjs - 控制单选按钮选择 angularjs
- docker - Docker 无法获取 deb.debian.org 大小不匹配
- mysql - 使用python将密文插入mysql
- c# - 在 b.txt 文件 C# 中从 a.txt 文件中查找字母
- c++ - 我使用什么函数在 cin 语句中存储单个字符,以便可以单独处理每个字符?
- ios - 如何在 iOS 8 及更高版本中处理 RTL 语言的后退按钮图像
- javascript - 检测是否正在调试 Jest 代码
- c# - 如何在 Xamarin android 中将文本和图像添加到网格视图