30

早上好,

我使用 amazon s3 存储桶作为图像服务器。我想使用我网站的子域,如何解决这个桶。例如:一张图片现在位于:https ://s3-sa-east-1.amazonaws.com/nomeBucket/pasta/imag.png ,我通过同一个链接访问它。

会不会是这样:imagens.mydomain.com.br / folder / imag.png 有什么办法可以做到这一点吗?为存储桶指定子域地址?我已经尝试了亚马逊路线 53,作为 CNAME。我试过这个:https ://s3-sa-east-1.amazonaws.com/nomeBucket/

我昨天参加了考试,但显然它没有用。有人已经做过类似的事情,和/或知道如何帮助我?

注意:我使用的是 nginx。还需要为子域配置它吗?

谢谢

4

3 回答 3

42

您需要重命名您的存储桶以匹配自定义域名(例如imagens.mydomain.com.br)并将该域设置为 CNAME 以

<bucket-name>.s3.amazonaws.com.

(在你的情况下imagens.mydomain.com.br.s3.amazonaws.com.

完整的说明可在此处获得:

http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html

于 2013-09-12T13:46:44.607 回答
6

2019 年更新:S3 中的 AWS SUBDOMAIN 托管

截至今天,以下步骤已成功为 AWS S3 托管的静态网站创建子域:

  1. 创建带有子域名的存储桶。在这个例子中 www. 子测试.mysite.com

aws 存储桶

注意:确保在存储桶的“权限”选项卡上:

1.阻止公共访问(存储桶设置) 2.访问控制列表和 3.适当设置存储桶策略以确保存储桶是公开的。(假设您已经为您的根域存储桶执行此操作,这些设置可以镜像到此子域存储桶上)

S3 存储桶权限

  1. 上传bucket中的index.html文件

索引 aws 存储桶

  1. 使用您的域提供商 创建CNAME 记录namecheap 中的 CNAME 记录
于 2019-07-07T17:02:00.850 回答
2

为了完整起见,我将在这里建立其他答案。

我已将存储桶移至子域,以便 Cloudflare 可以缓存内容。

  • 旧 S3 存储桶名称:autoauctions
  • 新 S3 存储桶名称:img.autoauctions.io
  • CNAME 记录:img.autoauctions.io.s3.amazonaws.com

现在您需要复制所有对象,因为您无法重命名存储桶。以下是使用 AWS CLI 执行此操作的方法:

pip install awscli
aws configure

现在,您将旧存储桶内容复制到新存储桶。

aws s3 sync s3://autoauctions s3://img.autoauctions.io

我发现这对于我需要复制的 1TB 图像来说太慢了,所以我增加了并发连接的数量并从 EC2 实例重新运行。

aws configure set default.s3.max_concurrent_requests 400

同步吧!


想要将存储桶中的文件夹设为公开?像这样创建存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::img.autoauctions.io/copart/*"
        },
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::img.autoauctions.io/iaai/*"
        }
    ]
}

img.autoauctions.io现在图像通过 Cloudflare 的缓存加载。

希望这可以帮助一些人!

于 2018-06-24T08:15:37.643 回答