【问题标题】:When using Public-Accessible S3 buckets, how are there not collisions with other Public-Accessible S3 bucket and object names?使用可公开访问的 S3 存储桶时,如何不与其他可公开访问的 S3 存储桶和对象名称发生冲突?
【发布时间】:2021-11-05 17:04:42
【问题描述】:

我有一个 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 是否以某种方式处理这个问题?

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

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    来自Amazon's Documentation

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

    所以亚马逊一开始就不会让你发生命名冲突。

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

    【讨论】:

    • 是的,原来my-bucket(毫不奇怪)是一个现有的 S3 存储桶。当我尝试在自己的控制台中创建它时,我收到一条错误消息,指出它已经存在。谢谢,洛伦佐!
    猜你喜欢
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多