【发布时间】:2020-03-11 15:47:56
【问题描述】:
我正在尝试关注this article on cloudflare,了解如何通过子域获取 Amazon S3 资产。
当我使用 DNS 手动定义特定子域时,它按预期工作,如下所示:
CNAME ----- 资产 ------ fullpage.sites.s3-website-us-west-1.amazonaws.com --- 橙色云图标
然后我可以在使用时访问我的亚马逊文件: https://assets.example.com
但是,我想使用通配符,以便可以将每个子域重定向到我的 Amazon S3 存储桶中的文件夹。我不想手动定义这些子域,因为这是我的网络用户将在他们的网络应用程序中生成的东西。
因此,我使用通配符 NAME 添加以下记录。 CNAME ----- * ------ fullpage.sites.s3-website-us-west-1.amazonaws.com --- 灰色云图标
请注意,我不允许使用“橙色云图标”(代理),我必须使用灰色图标(仅限 DNS)
现在此 URL 已按预期停止工作: https://assets.example.com
我得到一个 aws 错误:
404 未找到
- 代码:NoSuchBucket
- 消息:指定的存储桶不存在
发生了什么事?
我该如何解决这个问题?
【问题讨论】:
-
您需要像我提到的here 那样的解决方案,它可以在将请求发送到 S3 之前重写路径。我的解决方案使用 Lambda@Edge 来做到这一点。使用 Cloudflare,我假设您可以使用 Cloudflare Workers 进行路径重写,但我不知道。到目前为止,您所做的将需要一个为每个子域命名的存储桶,这不太可能。
标签: amazon-web-services amazon-s3 cloudflare cloudflare-workers