使用公共可访问S3存储桶时,如何不与其他公共可访问S3存储桶和对象名称发生冲突?

时间:2015-09-26 19:59:40

标签: amazon-web-services amazon-s3

我有一个S3存储桶my-bucket和该存储桶中的一个对象my-image.jpg

为了在网站上直接从S3中显示这些图片,我已将此存储桶政策放在my-bucket上:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}

现在,在我的网站上,我可以方便地在我的HTML中执行此操作:

<img width="400" height="400" 
            src="https://s3.amazonaws.com/my-bucket/my-image.jpg">

但是什么阻止了某个人在某个地方制作了自己的公开my-bucket,并添加了my-image.jpg如何加载正确的图片? S3是否以某种方式处理这个问题?

注意不,这些不是实际的存储桶名称+图像名称。他们就是例子。

1 个答案:

答案 0 :(得分:2)

来自http://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html

“您选择的存储桶名称在Amazon S3中的所有现有存储桶名称中必须是唯一的。”

所以亚马逊不会让你首先发生命名冲突。

我认为现在是每个地区,因为地区有自己的域名,但我不确定。