使 Amazon S3 存储桶中的每个对象均可公开访问

vai*_*eep 7 amazon-s3 amazon-web-services

我在 AWS 上有一个 S3 存储桶,我正在将图像从前端上传到其中。

成功将图像上传到 S3 后,这是我得到的 URL -

https://cewa-foundation-2020.s3.amazonaws.com/image8_%281%29.webp-1628768330444.webp

我想公开此 URL,以便任何知道此链接的人都可以查看该图像。

我怎样才能实现这个目标?

Joh*_*ein 23

要公开每个对象,您应该向存储桶添加存储桶策略

  • 转到存储桶的权限选项卡
  • 转到阻止公共访问选项
  • 关闭提到Bucket Policies的两个选项:

S3 阻止公共访问

  • 在其下方,添加一个授予匿名用户访问权限的存储桶策略:
{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid": "PublicRead",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在,Internet 上的任何人都可以访问存储桶中的所有对象。但是,他们将无法列出存储桶的内容,因此他们需要知道要访问的对象的确切名称。