amazon-s3 - 访问索引文档时,Cloudfront 给出“拒绝访问”
问题描述
我有一个配置为用作静态网站的 S3 网站,以及一个以 S3 存储桶为源的 Cloudfront 分发。
我的索引文件被调用index
,我已将其指定为存储桶配置和 Cloudfront 分发配置中的索引文件。
但是,如果我转到https://example.com/directory/,我会收到如下错误文档,其中 RequestID 和 HostID 在每个请求中都会发生变化:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>7F09A18821FE70FD</RequestId><HostId>H5OR+AZpNSGlhrUX1ECegTbWkio728A1MIdGkO4bkCZIJa/XQ6Uv7Hu0GgNgyxL+snerPPDnzr8=</HostId></Error>
如果我转到https://example.com/directory/index,则页面显示正确。
如果我从云端 URL 或 S3 网站端点访问网站,而不是我的自定义域,则不会发生问题。
访问 S3 存储桶时,如何正确提供目录索引页面?
解决方案
将分发的来源从更改为<bucket-name>.s3.amazonaws.com
解决<bucket-name>.s3-website.eu-west-2.amazonaws.com
问题。
不幸的是,当我开始在 Origin 设置的下拉菜单中输入内容时,Amazon 开始建议 S3 存储桶,并建议使用第一种格式的存储桶。
推荐阅读
- flutter - Flutter FlatButton is deprecated - alternative solution with width and height
- pandas - 当满足列python中的条件时删除行
- javascript - 三元运算应该返回简单的数组
- reactjs - 组件的初始渲染问题
- javascript - 使用 MongoDB 中的 GraphQL 按 ID 查找对象
- asp.net - 一段时间后 Web 缓存消失
- node.js - 将数据库和 API 数据结构化,使其在结构方面看起来完全相同
- java - Google 地图活动错误:set_timerslack_ns 写入失败:不允许操作
- javascript - POST 适用于 JQuery,但不适用于 XMLHttpRequest
- sql - 带有 CONVERT 的 WHERE 子句中带有 BETWEEN 的数据范围未过滤正确