You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为关联多S3存储桶的AWS CDN配置不同路径默认根对象

AWS CloudFront 多源不同路径默认根对象配置方案

前置准备

  • 提前在对应CloudFront分发的源配置中添加两个独立源:存储桶S1(对应根路径访问)、存储桶S2(对应/folder路径访问)。如果S3已开启静态网站托管,需选择自定义HTTP源填入S3静态网站域名;未开启静态网站托管则直接选择S3源即可,同时建议配置OAC实现CloudFront访问S3的权限控制。

步骤1:配置分层缓存行为

缓存行为优先级规则:路径匹配越精准优先级越高,数字越小优先级越高

  • 保留默认缓存行为(路径模式为*),关联源设置为S1,优先级保持默认1即可。
  • 新增缓存行为,路径模式填写/folder/*,关联源设置为S2,优先级设为0(高于默认行为),其余缓存配置根据自身需求设置后保存。

步骤2:配置根路径默认根对象

进入CloudFront分发的常规设置页,找到「默认根对象」配置项,直接填写index1.html后保存,即可实现访问abcd.cloudfront.net时自动返回S1存储桶的index1.html。

步骤3:配置子路径默认索引重写

CloudFront原生默认根对象仅对根路径/生效,/folder路径的默认index2.html需要通过CloudFront函数实现URL重写,操作如下:

  1. 进入CloudFront控制台左侧菜单栏的「函数」页面,创建新函数,运行时选择CloudFront Functions v2.0。
  2. 填入以下函数代码:
function handler(event) {
    const request = event.request;
    // 匹配 /folder 或 /folder/ 结尾的请求
    if (request.uri === '/folder' || request.uri === '/folder/') {
        // 若S2桶内index2.html存放在桶根路径,此处改为 request.uri = '/index2.html'
        request.uri = '/folder/index2.html';
    }
    return request;
}
  1. 测试代码无误后保存并发布函数。
  2. 回到当前CloudFront分发的「行为」标签页,编辑之前创建的/folder/*缓存行为,找到「函数关联」配置,在「查看器请求」类型中选择关联刚发布的CloudFront函数,保存即可。

注意事项

  • 所有配置修改后CloudFront需要5-10分钟全球节点生效,测试时可添加Cache-Control: no-cache请求头避免本地旧缓存影响验证结果。
  • 确保S1桶内的index1.html、S2桶内的index2.html都配置了正确的访问权限,禁止公开访问的桶需要提前配置OAC授权CloudFront读取文件。

内容的提问来源于stack exchange,提问作者vipul kaushal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:42:02