2016-08-09 111 views
0

我上iOS应用工作访问文件,而我们最近使用Amazon S3的开始了,我不知道在哪里可以找到这个问题的信息。亚马逊S3防止网址

我们使用S3来存储个人资料照片。我们希望能够下载任何用户的个人资料照片并将其显示在应用程序中。我们正在做的是使用独特的profile ID创建密钥并将图像上传到服务器。然后,我们可以构建相同的URL给出配置文件ID,并将配置文件图像下载到应用程序中。

但是,人们担心人们会找出网址,并且只需更改URL的profile ID组件即可查看我们所有用户的个人资料图像。建议是散列密钥,然后将它发送到S3,但我们需要能够从多个平台(iOS,Android,其他应用程序等)创建相同的散列来下载图像。

解决方案是将密钥发送到服务器,并让它发回散列响应,然后开始使用散列密钥上传。这似乎很愚蠢。如果我们想要在应用程序中下载用户的个人资料照片,我们必须获取他们的用户ID,然后获取散列,然后我们才能最终请求图像。

我觉得应该有一种方法可以让我们安全地从我们的网站/应用程序上传和下载图像,但不允许未经身份验证的用户浏览服务器上的所有图像。然而,我一直没有弄清楚最佳做法,我希望有人能指出我的正确方向。

回答

0

我假设有一个额外的API用于其他信息,如用户信息或帖子,或任何应用程序的用途?您是否可以在该请求中返回端点的基于时间的到期URL? S3支持在特定时间到期的链接,例如从现在开始5分钟或在24小时内。有人必须找出API的路径/端点,应用程序中使用的令牌,然后通过猜测配置文件ID来最终下载图像。