具有授权用户 IAM 角色的 Amazons3 是否仍需要预签名 URL 才能从存储桶加载图像



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

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

当我去加载文件时,没有任何反应。所以我的问题是,在我加载毕加索之前,是否需要从 DynamoDB 获取网址,然后对其进行预签名?或者我的用户有权对我的 s3 存储桶执行任何操作这一事实是否足够?

感谢您的帮助

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

最新更新