【发布时间】:2018-03-02 23:21:31
【问题描述】:
我是第一次使用Flysystem 使用 S3 实现文件上传(在这种情况下特别是用户个人资料头像图像)。我目前已经创建了一个 S3 存储桶,用户可以上传一张图片,然后可以在存储桶控制台中在线查看。
我现在需要能够在请求时显示这些图像(即查看该用户的个人资料)。我假设这个过程是生成 URL(例如https://s3.my-region.amazonaws.com/my-bucket/my-filename.jpeg)并将其用作图像标签的src,但是要做到这一点,文件(或存储桶)必须标记为公共。这对我来说似乎是合理的,因为其中的文件并不是真正私密的。但是,当您将存储桶更新为公开状态时,您会看到一条消息:
我们强烈建议您永远不要向您的 S3 存储桶授予任何类型的公共访问权限。
是否有一种不同的或更安全的方式来实现像这样的直接图像链接,而 AWS 的新手却没有看到?
【问题讨论】:
-
您的文件上传代码可以指定特定文件对每个人都具有只读访问权限。在 PHP SDK 中,这是 'ACL' => 'public-read'
-
参见flysystem.thephpleague.com/api 中的
Manage Visibility- 您也可以在文档链接中使用读取流并代理和/或缓存它
标签: php amazon-web-services amazon-s3 flysystem