我正在尝试在 Amazon S3 存储桶中托管一些静态内容,并通过我自己的域提供该内容。
有问题的存储桶名为“e.tl-dr.org”,我将“index.html”设置为索引文档。我可以访问http://e.tl-dr.org.s3-website-us-east-1.amazonaws.com/然后我就看到了 index.html 的内容(只有“test”)。一切正常。
我还在我的注册商网站中添加了指向“s3.amazonaws.com”的“e.tl-dr.org”的 CNAME 条目。(我没有使用 AWS Route 53 DNS 服务,而大多数关于此的教程似乎都是针对该服务的。)所以现在“http://e.tl-dr.org/index.html“正确显示文件,但裸域名只给我 S3 的标准 403 消息。
我还需要设置什么才能使其正常工作吗?
答案1
为了使索引文档等网站功能正常工作,您CNAME
需要指向网站端点bucketname.s3-website-us-east-1.amazonaws.com
,而不是 REST 端点bucktname.s3.amazonaws.com
。
当您配置存储桶用于网站托管时,该网站可通过特定于区域的网站终端节点访问。网站终端节点与您发送 REST API 请求的终端节点不同。
—http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
对实际对象的 GET 请求在两个端点都可以正常工作,但正如文档所示,自定义错误和索引文档以及重定向仅通过到达网站端点的请求才受支持。