android - 为从移动应用程序访问 AWS S3 生成预​​签名 URL

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

这可能已经在 SO 上被深入研究过多次,但我仍然无法理解这里的流程。有人可以帮我解释一下我可能遗漏了什么吗!

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

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

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

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

为相当长的咆哮道歉!

最佳答案

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

然后 cognito 池 ID 必须出现在应用程序中,该应用程序获取临时凭证以访问 AWS 资源。

谢谢, 罗汉

关于android - 为从移动应用程序访问 AWS S3 生成预​​签名 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43749060/

相关文章:

python - 无法连接到端点URL: “http://127.0.0.1:8000/”

android - Google 删除了 Android 内核的交叉编译器。他们现在在哪里?

iOS Objective-C VoiceOver 更新可用的可访问元素

ios - XCode 8.1 更改了 Storyboard View 中的常量

ios - swift xcode 错误 : Thread 1 signal SIGABRT "instantiated view controller from storyboard but didn' t get a UITableView

mysql - 是否可以将 Amazon QuickSight 控制面板图表集成到 Web 应用程序中?

android - FragmentStatePagerAdapter 重复 ActionBar 菜单项

android - 通过在后台运行的推送通知做出 native react

android - 如何将 ImageView 从一个 Activity 发送到另一个 Activity

amazon-web-services - AWS ALB - 所有服务都是单一的?