0

我正在开发一个包含 AWS 开发工具包的 Android 应用程序。用户已通过 Cognito 获得授权。我还创建了应该给我 DynamoDB 和 s3 的 IAM 角色。

目前授权和 DynamoDB 正在工作。当我查询表时,它工作正常,我得到了我的 s3 文件的链接(我复制并粘贴到数据库)。

当我去加载文件时,什么都没有发生。所以我的问题是是否需要从 DynamoDB 获取 url,然后在我加载 Picasso 之前对其进行预签名?或者我的用户被授权使用我的 s3 存储桶做任何事情这一事实是否足够?

谢谢你的帮助

4

1 回答 1

3

如果您在 Cognito 中的角色具有访问 S3 存储桶的正确权限,则您不需要预签名 url。话虽如此,只有在您使用带有 Cognito 凭证的 AWS Android 开发工具包来访问文件(即使用 S3TransferManager 或 S3 Get)、尝试直接通过 Web 浏览器访问文件或 Picasso 尝试访问文件时才有效要在不使用 Cognito 凭据的情况下下载文件,它将无法正常工作。您可以将 AWS Android SDK 与存储桶和密钥结合使用,通过此方法生成一个预签名 URL ,Picasso 和 Web 浏览器都可以使用该 URL。

于 2016-05-25T16:56:29.680 回答