【问题标题】:Is there a way to have index.html functionality with content hosted on S3?有没有办法在 S3 上托管内容的 index.html 功能?
【发布时间】:2008-08-26 12:30:19
【问题描述】:

有没有办法让 S3 默认为 index.html 页面?例如:我的存储桶对象列表:

/index.html
/favicon.ico
/images/logo.gif

调用 www.example.com/index.html 效果很好!但是,如果要调用 www.example.com/,我们会得到一个 403 或一个列出 XML 文档的 REST 对象,具体取决于存储桶级 ACL 的配置方式。

那么,问题来了:有没有办法让 index.html 功能与托管在 S3 上的内容一起使用?

【问题讨论】:

    标签: amazon-s3 amazon-web-services


    【解决方案1】:

    对于 3 年后仍在为此苦苦挣扎的人们,让我补充一些重要信息:

    您网站的 URL(以及您必须将 DNS 指向的 URL)不是

    <bucket_name>.s3-us-west-2.amazonaws.com,但是

    <bucket_name>.s3-website-us-west-2.amazonaws.com.

    如果您使用第一个,无论您如何配置Index document,它都不会按预期工作。

    举一个具体的例子,考虑:

    要获取您的真实网站地址,请转到您的S3 Management Console,选择目标存储桶,然后选择Properties,然后选择Static Website Hosting。它将显示有效的网站 URL。

    【讨论】:

    • 这是正确的答案!谢谢!
    • 感谢您终于解决了我的问题!
    • 谢谢!这困扰了我 15 次,我一直不明白为什么。
    • 先生,您应该获得奖牌!
    • 它也开始为我工作,但等待了好几个小时。
    【解决方案2】:

    Amazon S3 现在支持Index Documents

    存储桶的索引文档可以设置为index.html。当访问站点的根目录或包含该名称的文档的子目录时,将返回该文档。

    使用 aws cli 非常容易:

    aws s3 website $MY_BUCKET_NAME --index-document index.html
    

    您可以从 AWS 管理控制台设置 索引文档

    【讨论】:

    • 是的。我一听到公告就发布了这个。
    • PS:喜欢手绘圆圈;)
    • 不幸的是,当它感觉像它时,它会起作用。我在一个运行良好的存储桶上进行了此配置,而另一个存储桶不起作用,仍然列出 XML 废话。
    • 查看 fiatjaf 的答案以了解故事的其余部分。仅设置索引文档是不够的。您还必须使用修改后的域名。
    【解决方案3】:

    您可以通过 Amazon CloudFront link 轻松解决。在 Amazon CloudFront,您可以修改根对象。您可以在此处下载管理器:m1.mycloudbuddy.com/downloads.html。

    【讨论】:

    • 哈,我完全忘记了这个两年前的问题。是的,CloudFront 通常在从 S3 交付内容方面要好得多。
    【解决方案4】:

    自从很久以来,这个问题被问到,并且 Amazon S3 改变了他们的界面。我想用更新的截图来回答。

    我们需要为 S3 启用“静态网络托管”以用作网络托管。 - 转到属性 -> 单击静态 Web 托管 -> 选择“使用此存储桶托管网站” - 输入索引文档(默认为 index.html)、错误文档和重定向规则(如果有)。

    正如this answer on Stack Overflow 中的回答,网络托管链接为:http://bucket-name.s3-website-region.amazonaws.com

    【讨论】:

      【解决方案5】:

      我建议从 2006 年开始阅读 this thread(在 Amazon Web 服务开发人员连接上)。似乎没有简单的解决方案。

      【讨论】:

        【解决方案6】:

        是的。使用 AWS Cloudfront 可让您分配默认文件。

        【讨论】:

          【解决方案7】:

          您可以使用 dns webforwards 和 cloaking 来做到这一点。只转发到index.html的完整路径

          www.example.com 转发到 http://www.example.com.s3.amazonaws.com 并确保隐藏输出。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-12-09
            • 2020-01-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-07-20
            相关资源
            最近更新 更多