从移动应用

时间:2017-05-03 00:06:59

标签: android ios amazon-web-services amazon-s3 pre-signed-url

这可能已经多次钻探了SO但我仍然无法理解这里的流程。有人可以请一些关于我可能缺少的东西的帮助吗?

我正在构建一个移动消息应用程序,Erlang中的后端聊天服务器和照片存储在AWS S3中。我想确保当用户向一个组发送照片时,只能由该组的成员下载,而不是其他人。

根据我的理解,我需要将预先签名的URL(已上传的照片)分发给聊天接收者(即群组成员),以便他们可以直接下载。

我的问题是:如何生成这些预先签名的网址? AWS Cognito在这里扮演什么角色?我应该构建一个可以通过移动应用程序查询的新Web服务吗?因此,此Web服务将调用Cognito的getIdentityId()并使用响应(以及移动客户端传递的存储桶名称/密钥)生成预签名URL,然后将其传递回移动客户端,然后可以将此URL分发给群组聊天收件人?

或者,Cognito凭据提供程序和用户池ID是否应包含在移动源代码中,而iOS / Android应用程序本身应该生成所述URL?

为相当长的咆哮道歉!

1 个答案:

答案 0 :(得分:2)

Cognito凭据用于签署由SDK生成的预签名URL。如果预签名URL未使用有效凭据签名,则下载的get请求将失败。

然后,应用程序中必须存在cognito池ID,该应用程序将获取用于访问AWS资源的临时凭证。

谢谢, 罗汉