我实际上在理解如何做到这一点时遇到了一些困难。
在我过去将图像直接存储在服务器中之前,但在转向生产之前,我决定采用这种方式。因此,将其存储在存储桶中后 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/