【发布时间】:2011-09-10 09:46:17
【问题描述】:
我正在考虑使用 Amazon S3 为我的静态网站提供服务。我创建了一个存储桶并上传了我的文件;在 AWS 管理控制台的“网站”选项卡下,我已选中“启用”并在“索引文档”字段中输入 index.html。我有以下存储桶策略:
{
"Version": "2008-10-17",
"Id": "924a2348-de0e-43aa-bb06-83adbcd1db22",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
我的存储桶名称而不是 my-bucket。在“权限”选项卡下,我还授予“所有人”列表功能。
如果我尝试访问my-bucket.s3.amazonaws.com/index.html,我的页面(及其图像、CSS 等)会按预期显示。但是,只需转到 my-bucket.s3.amazonaws.com 或 my-bucket.s3.amazonaws.com/ 就会给出一个目录列表 XML 文件,而不是显示页面。如果我尝试访问my-bucket.s3.amazonaws.com/subdirectory,我会收到一条错误消息(在 XML 中),提示“指定的密钥不存在”。最奇怪的是,如果我尝试转到my-bucket.s3.amazonaws.com/subdirectory/(带有斜杠),页面不会加载,但我的浏览器会下载一个名为download 的空文件。 (再一次,转到my-bucket.s3.amazonaws.com/subdirectory/index.html 会按预期显示页面。)
我在这里做错了吗?当请求目录名称时,如何让 S3 显示 index.html 文件?
【问题讨论】:
标签: amazon-s3 amazon-web-services