通配符 DNS + S3(或类似)?

通配符 DNS + S3(或类似)?

我知道可以让子域名指向 s3 存储桶(因此,我可以使用类似 s3.example.com 的域名)。是否可以使用通配符 DNS 和 S3(或类似域名)来执行以下操作?

  • abc.example.com => /abc.example.com/
  • 123.example.com => /123.example.com/
  • 123.example.com/test.png => /123.example.com/test.png

我认为 S3 无法做到这一点;我可以使用任何类似的服务。它只需要能够提供静态文件。

(注意:我正在制作一个文件主机,人们可以在其中注册他们的子域.my-host-domain.com。该主机只会在我的域上提供来自其子域的静态文件。)

答案1

我假设您将为每个子域创建单独的 S3 存储桶。您需要 DNS 服务器具有通配符记录,但请求的名称会添加到响应的前面。例如,以下域将动态生成:

abc.example.com.    CNAME   abc.example.com.s3.amazonaws.com.
123.example.com.    CNAME   123.example.com.s3.amazonaws.com.

但是我不知道有任何 DNS 服务器具有此功能。

答案2

S3 首先要求存储桶存在...因此,如果不做一点工作,简而言之,它无法开箱即用。

但是要做到这一点.. 1. 当用户注册时 - 使用 AWSSDK 创建一个带有前面的 slug 的 s3 存储桶...(即 - company.example.com) 2. 使用 AWSSDK 配置存储桶以允许静态文件托管 3. 将记录从 company.example.com 添加到 Route53 作为别名到相应的 s3 存储桶。

然后,您还必须使用 IAM 和 s3 策略配置所有权限问题(谁可以访问等)。相当多的工作。

相关内容