我将 html 代码上传到 S3 并启用静态网站选项。仅适用于 /index.html
如果我导航到像 products/index.html 这样的 html 文件,它工作正常,但是当我导航到像 products/ 这样的文件夹时,它会失败并显示 AccessDenied。
问题是什么?它应该识别文件夹内的index.html
{
"Version": "2012-10-17",
"Id": "__POLICYID__",
"Statement": [
{
"Sid": "__SSID__",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::__MYDOMAIN__/*"
}
]
}
问题在于 S3 静态网站托管如何处理子目录中的文件夹路径和
index.html
文件。
为了使 S3 识别文件夹路径的 index.html,您需要配置默认根对象或确保网站托管设置处理子目录的
index.html
。您可以发现在 Static Website Hosting
下,确保 Index Document
设置为 index.html
。此设置告诉 S3 在访问文件夹路径时提供服务 index.html
。
就像这样,当您导航到
https://<bucket-name>.s3-website-<region>.amazonaws.com/products/
时,它应该可以正常工作。