我实际上很难理解如何做到这一点。
在我以前将图像存储在服务器中,但转向生产之前,我决定采取这种方式。因此,将其存储在存储桶example
中之后,我应该如何获取图片19512491.jpg
并将其显示在源代码中?
<img src="image_src_should_go_here"/>
我是否应该在存储桶中编辑权限并允许读取给定文件夹中的内容,否则?非常感谢你......
答案 0 :(得分:3)
IMG链接
首先,您将构建一个指向Amazon S3中图像的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"/>
安全强>
您可以将对象公开访问,也可以使用预签名网址。
使对象可公开访问的最简单方法是使用 Bucket Policy ,例如这个(来自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这样的照片共享网站,则可以向所有者提供私人照片