在我们的服务中,我们有其他用户应该能够看到的用户头像图像。
如何暴露用户头像?我想到的两个选择是:
这些中是否有任何一个是首选,或者是否有最佳实践,在简单性和数据安全性方面都是首选(也考虑到 GDPR 等)?
这完全取决于您的风险偏好。
如果您同意图像可公开查找(即使具有复杂的 URL),那么公共存储桶就可以了。
Gravatar - 全球公认的头像就是这样做的——它需要用户电子邮件地址的哈希并在 URL 中使用它。
或者,您的应用程序可以生成 Amazon S3 预签名 URL,它提供对 Amazon S3 中的私有对象的限时访问。这可以临时访问 S3 存储桶中的私有对象。您的应用程序只需要生成一个哈希值,然后可以使用它来生成一个 URL。这提供了控制访问的好处,但仍然使用 S3 来提供私有数据(从而减少应用程序的负载)。