具有授权用户 IAM 角色的 Amazons3 是否仍需要预签名 url 才能从存储桶加载图像
Does Amazons3 with authorized user IAM role still need presigned url to load image from bucket
我正在开发一个 Android 应用程序,其中包含 AWS SDK。用户已通过 Cognito 获得授权。我还创建了应该给我 DynamoDB 和 s3 的 IAM 角色。
目前授权和DynamoDB正在运行。当我查询 table 时它工作正常并且我将 link (我复制并粘贴到数据库)到我的 s3 文件。
当我加载文件时,没有任何反应。所以我的问题是是否需要从 DynamoDB 获取 url 然后在我加载 Picasso 之前预先签名?或者我的用户有权对我的 s3 存储桶执行任何操作这一事实就足够了吗?
感谢您的帮助
如果您在 Cognito 中的角色具有访问 S3 存储桶的正确权限,则不需要预签名 url。话虽如此,只有当您使用带有 Cognito 凭据的 AWS Android SDK 访问文件(即使用 S3TransferManager 或 S3 Get)时,如果您尝试直接通过网络浏览器访问文件或如果 Picasso 尝试在不使用 Cognito 凭据的情况下下载文件,它将无法工作。您可以使用 AWS Android SDK,结合存储桶和密钥生成预签名的 url with this method,Picasso 和 Web 浏览器都可以使用它。
我正在开发一个 Android 应用程序,其中包含 AWS SDK。用户已通过 Cognito 获得授权。我还创建了应该给我 DynamoDB 和 s3 的 IAM 角色。
目前授权和DynamoDB正在运行。当我查询 table 时它工作正常并且我将 link (我复制并粘贴到数据库)到我的 s3 文件。
当我加载文件时,没有任何反应。所以我的问题是是否需要从 DynamoDB 获取 url 然后在我加载 Picasso 之前预先签名?或者我的用户有权对我的 s3 存储桶执行任何操作这一事实就足够了吗?
感谢您的帮助
如果您在 Cognito 中的角色具有访问 S3 存储桶的正确权限,则不需要预签名 url。话虽如此,只有当您使用带有 Cognito 凭据的 AWS Android SDK 访问文件(即使用 S3TransferManager 或 S3 Get)时,如果您尝试直接通过网络浏览器访问文件或如果 Picasso 尝试在不使用 Cognito 凭据的情况下下载文件,它将无法工作。您可以使用 AWS Android SDK,结合存储桶和密钥生成预签名的 url with this method,Picasso 和 Web 浏览器都可以使用它。