amazon-web-services - 显示存储在 s3 存储桶中的图像

标签 amazon-web-services amazon-s3

我实际上在理解如何做到这一点时遇到了一些困难。
在我过去将图像直接存储在服务器中之前,但在转向生产之前,我决定采用这种方式。因此,将其存储在存储桶中后 example我应该如何获取图片 19512491.jpg并在源代码中显示它?
<img src="image_src_should_go_here"/>
我应该在存储桶中编辑权限并允许读取给定文件夹中的内容,否则吗?非常感谢...

最佳答案

IMG链接

首先,您将构建一个指向 Amazon S3 中图像的 URL。

确切的 URL 可能会根据使用的区域而变化(请参阅 Amazon S3 Endpoints )。它看起来像这样:

https://s3-ap-southeast-2.amazonaws.com/BUCKET-NAME/image.jpg

如果您已将存储桶配置为静态网站,则 URL 将如下所示:
https://s3-website-ap-southeast-2.amazonaws.com/BUCKET-NAME/image.jpg

所以,你会在 IMG 中使用它标签,像这样:
<img src="https://s3-ap-southeast-2.amazonaws.com/BUCKET-NAME/image.jpg"/>

安全

您可以创建对象 可公开访问 ,或使用 预签名 URL .

使对象可公开访问的最简单方法是使用 存储桶策略 例如这个(来自 Amazon S3 documentation )使整个存储桶公开:
{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    }
  ]
}

当然,该策略可以更具选择性,例如仅公开特定目录。

或者,如果您希望更有选择性,您可以将 Amazon S3 中的对象保密,然后让您的应用程序生成 预签名 URL 在特定时间段内提供对对象的身份验证访问。

这是提供对文件的选择性访问的好方法。例如,如果您经营像 Flickr 这样的照片共享网站,您可以向所有者提供私有(private)图片

参见文档:Share an Object with Others

关于amazon-web-services - 显示存储在 s3 存储桶中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33600196/

相关文章:

amazon-s3 - Amazon S3,存储大量文件(数百万和许多 TB 的数据)

linux - 如何在通过 AWS CodeDeploy 从 Git (Bitbucket) 部署后保留符号链接(symbolic link)

amazon-web-services - 给定时间段内每个实例的 AWS EC2 计费小时数

amazon-web-services - 如何将可用区列表从 Terraform 传递到 CloudFormation 模板?

amazon-web-services - 即使假定的角色具有访问权限,S3 存储桶策略也会出现 PutBucketPolicy 访问被拒绝的问题

将Json文件实时存储到amazon S3的Python脚本

hadoop - Hive 版本 0.13.1 中的性能问题

ios - AWS iOS S3 异常 : Invalid region string

amazon-web-services - 如何使用 S3/Cloudfront 在子文件夹中提供 index.html?

amazon-web-services - 使用 Ansible 在 AWS 中进行蓝绿部署