在 S3 Bucket 的子文件夹中托管 index.html

Posted

技术标签:

【中文标题】在 S3 Bucket 的子文件夹中托管 index.html【英文标题】:Host index.html in subfolders of S3 Bucket 【发布时间】:2015-09-08 00:22:57 【问题描述】:

静态网站托管在根目录中工作,但这对我不起作用:

my.bucket/index.html
my.bucket/subfolder/index.html

https://s3-eu-west-1.amazonaws.com/my.bucket 按预期工作

https://s3-eu-west-1.amazonaws.com/my.bucket/subfolder 不起作用(拒绝访问)

这可能吗?

【问题讨论】:

s3-eu-west-1.amazonaws.com/my.bucket/subfolder/index.html 工作吗? my.bucket.s3-eu-west-1.amazonaws.com/subfolder/index.html 怎么样? s3-eu-west-1.amazonaws.com/my.bucket/subfolder/index.html 正确呈现页面 my.bucket.s3-eu-west-1.amazonaws.com/subfolder/index.html 被拒绝访问! 如果您想要网站托管功能,包括索引文档,您应该使用http://your.bucket.s3-website-eu-west-1.amazonaws.com/... 【参考方案1】:

有(至少)三种方式可以访问托管在 AWS 中的静态网站。

S3 存储桶名称 CDN 名称。 (这是“托管静态网站”向导告诉您使用的内容) S3 存储桶管理页面上列出的“静态网站托管端点”

只有“静态网站托管端点”过滤传入请求以提供类似 Apache 的行为; S3 是一个 RESTful API,用于存储没有子文件夹概念的文件。

如果您使用过该向导,屏幕左下方的小文本中会显示“在 S3 中管理文件”,它将在控制台中为您打开正确的页面,然后单击“属性” ' 按钮。

【讨论】:

【参考方案2】:

您还需要修改子文件夹的权限以使其可公开访问。

【讨论】:

已经这样做了(否则我将无法直接访问它?)

以上是关于在 S3 Bucket 的子文件夹中托管 index.html的主要内容,如果未能解决你的问题,请参考以下文章

关于aws-s3-bucket-静态网站托管相关的查询-S3.Client.get_bucket_website(**kwargs)

使用 S3、CloudFront 和源路径的静态网站托管的子文件夹重定向问题

Terraform无法使用静态S3网站端点创建CloudFront的原点

允许管理员访问 s3 存储桶中的子文件夹。保持所有其他文件夹公开

s3中图片打包后获取包地址

hadoop fs -ls s3://bucket 或 s3a://bucket 抛出“没有这样的文件或目录”错误