0

这可能已经在 SO 上进行了多次研究,但我仍然无法理解这里的流程。有人可以帮忙说明一下我可能会错过什么!

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

据我了解,我需要将(上传照片的)预签名 URL 分发给聊天收件人(即群组成员),以便他们可以直接下载相同的 URL。

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

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

为相当长的咆哮道歉!

4

1 回答 1

2

cognito 凭证用于对 SDK 生成的预签名 URL 进行签名。如果预签名 URL 未使用有效凭据进行签名,则下载获取请求将失败。

然后 cognito pool id 必须存在于应用程序中,该应用程序获取临时凭证以访问 AWS 资源。

谢谢,罗汉

于 2017-05-03T00:42:03.783 回答