如何为 Cloudfront 上的静态托管网站的子目录设置默认根对象?

2024-03-10

如何为 Cloudfront 上静态托管网站上的子目录设置默认根对象?具体来说,我想www.example.com/subdir/index.html每当用户请求时提供服务www.example.com/subdir。请注意,这是为了交付保存在 S3 存储桶中的静态网站。此外,我想使用原始访问身份将对 S3 存储桶的访问限制为仅 Cloudfront。

现在,我知道 Cloudfront 的工作方式与 S3 和亚马逊状态不同具体来说 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html:

CloudFront 默认根对象的行为不同于 Amazon S3 索引文档的行为。当您配置 Amazon S3 时 Bucket作为网站并指定索引文档,Amazon S3返回 即使用户请求索引文档中的子目录 桶。 (索引文档的副本必须出现在每个 子目录。)有关配置 Amazon S3 的更多信息 存储桶作为网站以及有关索引文档,请参阅托管 Amazon Simple Storage Service 中的 Amazon S3 网站章节 开发者指南。

因此,即使 Cloudfront 允许我们指定默认根对象,但这仅适用于www.example.com而不是为了www.example.com/subdir。为了解决这个困难,我们可以将源域名更改为指向S3给出的网站端点。这非常有效,并且允许统一指定根对象。不幸的是,这似乎与原始访问身份 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html。具体来说,上述链接指出:

更改为编辑模式:

Web 分发 – 单击“源”选项卡,单击要编辑的源,然后单击“编辑”。您只能创建原始访问 源类型为 S3 源的源的身份。

基本上,为了设置正确的默认根对象,我们使用 S3 网站端点而不是网站存储桶本身。这与使用源访问身份不兼容。因此,我的问题可以归结为

  1. 是否可以为 Cloudfront 上静态托管网站的所有子目录指定默认根对象?

  2. 是否可以为 Cloudfront 提供的内容设置源访问身份,其中源是 S3 网站端点而不是 S3 存储桶?


There IS一种方法来做到这一点。不要通过在下拉列表中选择它来将其指向您的存储桶 (www.example.com.s3.amazonaws.com),而是将其指向您的存储桶的静态域(例如 www.example.com.s3-website-us -west-2.amazonaws.com):

谢谢此 AWS 论坛主题 https://forums.aws.amazon.com/thread.jspa?threadID=84964

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 Cloudfront 上的静态托管网站的子目录设置默认根对象? 的相关文章

随机推荐

  • 将 DateTime 值作为参数传递给 OleDbCommand

    我在将 DateTime 值作为 DbParameter 传递给查询时遇到问题 看来 DateTime 值的时间部分被剥夺了 下面是 C 中的示例代码 DbProviderFactory factory OleDbFactory Insta
  • 在 Metal Shading Language 中创建全局可访问的常量缓冲区

    我有一个关于 Metal 中的常量缓冲区的问题 假设我有类似的东西 list of includes goes here using namespace metal struct ConstantBuffer float ANY VALUE
  • 如何在我的 docker 映像中安装 python-tk [重复]

    这个问题在这里已经有答案了 当我在 docker 映像中运行 python 脚本时出现此错误 ImportError No module named tkinter please install the python tk package
  • 将 numpy 加载到 IronPython 中

    我最近安装了 Ironpython 工具 但在加载外部模块 numpy 时遇到问题 这是我的测试代码 import numpy numpy test 当编写我的简单测试时 智能感知找不到 numpy 但是当它从 vs2010 运行时 我得到
  • 将 opencv 仿射矩阵转换为 CGAffineTransform

    我想采用 OpenCV 中的仿射矩阵 Mat T getAffineTransform src pt dst pt 然后将其转换为 CGAffineTransform 以在 Core Graphics Objective C iOS 中使用
  • Postgresql 在删除行之前创建触发器

    所以我有这两个表 Table user columns id name surname password token earnedmoney Table addlisting columns id user fk price date ad
  • java中如何初始化动态数组?

    如果我有一个类需要返回可变维度的字符串数组 并且该维度只能在运行该类的某些方法时确定 那么如何在类的构造函数中声明动态数组 如果问题还不够清楚 在 php 中我们可以简单地声明一个字符串数组为 my string array array 并
  • 如何在 Kotlin 数据类字段上列出(java)注释?

    我使用 Firestore 的基于 Java 的注释来标记字段和将文档字段映射到 Java 类元素的方法 Retention RetentionPolicy RUNTIME Target ElementType METHOD Element
  • javascript - 迄今为止的字符串 - php iso 字符串格式

    我有一个日期格式为 2010 11 30T08 32 22 0000 2010 11 27T20 59 17 0000来自 feed 以字符串格式转换为 javascript 现在我想将其转换为 Date 对象 我怎样才能用 JavaScr
  • 使用 JavaScript 将字符串分成多个变量

    使用 JavaScript 我想获取这样的字符串var hashStr modal 123456 并分配左边的字符串 到一个变量和右边的字符串 到另一个变量 如果字符串不包含 然后忽略它 我怎样才能最好地实现这一目标 var hashStr
  • 添加文本时的转换表单元格宽度

    我有一个表格单元格 其中包含一些文本 td Text in here td 我无法使用 CSS 设置宽度 因为我不知道同一列中的其他单元格中有多少数据 但是 当我的 Javascript 将新代码插入表中时 我想为 CSS 中的宽度属性设置
  • Oh-my-posh 主题无法与 Powerline 字体和 ConEmu 一起正常工作

    I use PowerShell as my shell on Windows 7 I find that ConEmu is a really good terminal Since I am not on Windows 10 I ca
  • 如何使用 IntelliJ 设置 libgdx?

    我跟着this https github com libgdx libgdx wiki Gradle and Intellij IDEA教程 但似乎有点过时了 我不知道 不幸的是 我对 Java 的经验不是很丰富 但对 C Python 所
  • Javascript:如何检查 URL 是否包含单词

    我想检查浏览器中的 URL 是否包含单词 桌面 我从桌面启动 html 文件 它的网址是 file C Users Joe Desktop TestAlert html 但应该会出现一个警报 但这不起作用 这是我的代码 h1 Test001
  • 动态设置用户任务受让人

    我必须在 activiti 中创建需要以下用例的流程 1 表单有一个人员搜索字段 2 当有人填写表单并使用填充姓名的人员搜索字段完成任务时 我需要将分配的下一个任务的名称设置为可以对下一个任务执行操作的用户 如何使用 activiti 引擎
  • android中什么时候绘制视图?

    我想获取活动中视图的大小 但无法在任何活动生命周期回调 onCreate onStart onResume 中获取该信息 我假设这是因为视图尚未绘制 在什么时候绘制视图 是否有回调我可以放置我的代码以便获得视图的大小 findViewByI
  • Quarkus 替代 spring-data-jdbc

    默认DAO层 ORM框架中Quarkus is Panache 在 Hibernate 之上 这很奇怪 因为我没有找到任何可插入外部 L2 缓存实现 如 Redis 的内置集成 夸库斯被称为cloud native但在实际系统中 使用默认的
  • 如何使用 cURL 在 php 中发布表单数据?

    我有以下命令 它使用 form F 选项 我知道它正在工作 curl form file home USERNAME import csv https apiprovider com api v0 imports token KEY 我需要
  • mongodb聚合获取数组中负序的最大数量

    我需要通过聚合从数组中获取负序列的最大计数 示例文档 id 1 x 1 1 1 1 1 1 1 1 1 1 1 id 2 x 1 1 1 1 1 1 1 预期结果 id 1 x 4 id 2 x 2 请指教 您可以使用 reduce htt
  • 如何为 Cloudfront 上的静态托管网站的子目录设置默认根对象?

    如何为 Cloudfront 上静态托管网站上的子目录设置默认根对象 具体来说 我想www example com subdir index html每当用户请求时提供服务www example com subdir 请注意 这是为了交付保