代码之家  ›  专栏  ›  技术社区  ›  srkiNZ84

Cloudflare在使用S3后端时如何设置默认对象?

  •  1
  • srkiNZ84  · 技术社区  · 6 年前

    我正在尝试使用CloudFlare和awss3服务的组合来托管一个静态网站。我的问题是,我有一个“index.html”文件,直接导航到S3 URL:

    http://srdan.nz.s3-website-ap-southeast-2.amazonaws.com
    

    http://srdan.nz

    它返回存储桶内容的s3xml列表:

    <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>srdan.nz</Name><Prefix></Prefix><Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated><Contents><Key>index.html</Key><LastModified>2018-10-09T01:10:39.000Z</LastModified><ETag>&quot;f51109004d6b0518fad4c2f69d950a45&quot;</ETag><Size>133</Size><StorageClass>STANDARD</StorageClass></Contents></ListBucketResult>
    

    而不是“index.html”的内容。

    有人知道为什么会这样吗?如何配置Cloudflare/S3,使“index.html”文件成为在某人刚输入URL时返回的“默认”内容?

    我有一个解决方法,可以在Cloudflare中添加一个自定义的“页面规则”来重定向 http://srdan.nz/ “至” http://srdan.nz/index.html 但是,我强烈希望它直接返回“index.html”的内容。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Luke    5 年前

    以域为例 mybucket.com 我们希望通过Cloudflare提供s3存储桶的内容。

    虽然下面的URL仅用于访问S3 bucket mybucket.com.S3.amazonaws.com的内容,但不适合在我们的Cloudflare CNAME DNS记录中引用。

    我认为主要问题之一是 Cloudflare documentation 不显示正确的 如合同所述 AWS S3 documentation 用于从s3提供静态网站服务。

    您可能会发现,如果在Cloudflare DNS中使用了不正确的端点,则域将在根目录下返回类似以下的响应,而不是在bucket设置中作为设置返回默认文档:

    xml response

    答:使用静态网站端点

    -website- 等效端点:

    mybucket.com.s3-website-us-west-2.amazonaws.com

    正确的格式是 <BUCKET NAME>.s3-website-<AWS REGION>.amazonaws.com ,但可以在s3 bucket的设置中找到:

    s3 properties showing static hosting url

    mybucket.com.s3.amazonaws.com

    注意:您需要将Cloudflare中的SSL设置为“Flexible”,因为“Full”和“Full(strict)”不起作用。