如何将Amazon S3存储桶中的文件重定向到自有网站页面?

S3对象重定向配置方案
你之前配置不生效的核心原因是 x-amz-website-redirect-location 元数据仅对 S3 静态网站托管端点的访问请求生效,你当前公开的 https://myassets.s3.amazonaws.com/something.pkg 属于S3默认REST API端点,无法触发该重定向规则。
可通过S3控制台按以下步骤操作实现需求:
步骤1:开启存储桶静态网站托管
- 进入S3控制台,打开目标存储桶的属性标签页
- 下拉找到「静态网站托管」模块,点击编辑
- 选择启用,索引文档可随意填写如
index.html,保存配置 - 记录页面生成的静态网站托管端点(格式为
<bucket-name>.s3-website-<region>.amazonaws.com)
步骤2:选择对应重定向配置(二选一即可)
方案A:单个对象元数据配置(仅针对something.pkg生效)
- 进入存储桶对象列表,找到
something.pkg进入详情页 - 切换到元数据标签页,点击编辑
- 添加元数据:类型选择「系统定义」,键选择
x-amz-website-redirect-location,值填写完整目标地址https://my_website.com/file_landing_page/ - 保存修改,该对象通过静态网站端点访问时就会自动跳转
*注意:需确保something.pkg保持公开可读权限,否则访问会返回403错误,无法触发重定向。
方案B:存储桶重定向规则配置(支持批量匹配规则)
- 回到存储桶属性页的「静态网站托管」编辑页,找到「重定向规则」输入框
- 粘贴以下JSON规则:
[ { "Condition": { "KeyPrefixEquals": "something.pkg" }, "Redirect": { "HostName": "my_website.com", "ReplaceKeyPrefixWith": "file_landing_page/", "HttpRedirectCode": "302" } } ]
- 保存配置即可,所有匹配前缀为
something.pkg的请求都会触发跳转
生效说明
如果需要原有用户手里的https://myassets.s3.amazonaws.com/something.pkg链接直接生效,你可以将该域名的访问路由切换到上述生成的静态网站托管端点即可,所有对应请求都会触发重定向规则。
内容的提问来源于stack exchange,提问作者J. V.
相关产品推荐
相关产品推荐

