如何配置API Gateway Proxy+访问S3中带动态子目录的HTML文件
配置API Gateway Proxy+访问S3动态子文件夹内容
核心配置步骤
创建Proxy资源
- 进入API Gateway控制台,选中目标API(或新建API)。
- 在
test阶段对应的根资源下,创建Proxy资源:- 勾选「Configure as proxy resource」选项。
- 资源路径填写
/{proxy+},该配置会自动匹配所有test/之后的动态路径(如2022/06/index.html)。 - 根据需求启用CORS。
配置S3集成请求
- 在Proxy资源的「集成请求」页面,选择
AWS Service作为集成类型。 - 填写AWS服务信息:
- 区域选择存储桶所在的AWS区域。
- 服务选择
Simple Storage Service (S3)。 - HTTP方法设为
GET。 - 执行角色选择拥有S3读取权限的IAM角色(需包含
s3:GetObject权限,作用域覆盖目标存储桶)。
- 设置集成请求路径:填写
<bucket-name>/{proxy}(注意用{proxy}而非{proxy+},API Gateway会自动剥离test/前缀,将剩余路径传递给S3)。 - 配置映射模板:添加
application/json或text/html类型的模板,内容填{}即可,确保请求能正确传递到S3。
- 在Proxy资源的「集成请求」页面,选择
配置集成响应
- 在「集成响应」页面,添加状态码
200的响应规则。 - 配置响应头:添加
Content-Type头,映射值选择integration.response.header.Content-Type,保证返回文件的正确内容类型。 - 可选:添加404状态码的响应处理,返回自定义提示内容。
- 在「集成响应」页面,添加状态码
部署API
点击控制台的「Deploy API」按钮,选择test阶段完成部署。部署后即可通过目标路径访问S3文件。
关键注意事项
- IAM角色权限示例(替换
<bucket-name>为你的存储桶名):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::<bucket-name>/*" } ] }
- 确保S3对象的权限允许API Gateway的执行角色访问,可通过桶策略或对象ACL配置。
{proxy+}的路径匹配规则支持所有动态创建的子文件夹结构,无需硬编码路径。
内容的提问来源于stack exchange,提问作者xkzkx
相关产品推荐
相关产品推荐

