我正在开发 iOS应用,我们最近开始使用 Amazon S3 ,我不知道在哪里可以找到有关此问题的信息。
我们正在使用S3来存储个人资料照片。我们希望能够下载任何用户的个人资料照片并在应用中显示。我们正在做的是使用唯一的profile ID
创建密钥并将图像上传到服务器。然后,我们可以在给定配置文件ID 的情况下构建相同的 URL ,并将配置文件图像下载到应用程序中。
然而,人们担心人们会找出网址,并能够查看我们所有的用户'仅通过更改URL的profile ID
组件来配置图像。建议是散列密钥然后将其发送到S3,但我们需要能够从多个平台( iOS,Android,其他应用程序等)创建相同的散列来下载图像。
解决方案是将密钥发送到服务器,让它发回哈希响应,然后开始使用哈希密钥上传。这看起来很傻。如果我们想在应用中下载用户的个人资料照片,我们必须获取他们的用户ID,然后获取哈希值,然后我们最终可以请求图片。
我觉得我们应该有一种安全上传和下载来自网站/应用的图片的方法,但不允许未经身份验证的用户浏览服务器上的所有图片。但是,我没有成功找出最佳实践,我希望有人能指出我正确的方向。
答案 0 :(得分:0)
我假设有一个额外的API用于其他信息,例如用户信息或帖子,或者应用程序的用途?您能否在该请求中为端点返回基于时间的到期URL? S3支持在给定时间到期的链接,例如从现在开始的5分钟或24小时内。有人必须弄清楚API的路径/端点,应用程序中使用的令牌,然后迭代猜测配置文件ID以最终下载图像。