背景
- 我们有一个网络应用程序,它使用 aws-sdk for JavaScript 以允许使用 AWS Cognito 登录。
- 我们希望根据 AWS 政策允许用户访问 S3 上的文件。
- 使用
AWS.config.credentials = new AWS.CognitoIdentityCredentials(...)
我们能够执行登录并收到 token - 使用此 token ,我们执行
listObject
在桶上。
问题
成功登录后 listObject
在 S3 上,设置 src
时<img />
的属性标记为 https://MY_BUCKET.s3.amazonaws.com/my_file.jpg
我们得到:
403 (Forbidden)
客户端请求头似乎没有包含aws-sdk获取的aws-token。
我们尝试了什么
- 完成 this article 中的先决任务
- 正在浏览 these examples
- This solution来自 StackOverflow(产量
Maximum call stack size exceeded
)。此外,它似乎是客户端 CPU 密集型解决方案。
问题
什么是最干净、最简单的使用方式CognitoIdentityCredentials
允许在网页中显示来自 S3 存储桶的图像?
最佳答案
您可以像这样使用 IAM 创建策略:
http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_s3_cognito-bucket.html
Javascript SDK 有助于获取凭证、缓存它们,并且是 Cognito API 的包装器。 http://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html#JavaScript
关于html - 使用 AWS 策略显示来自 S3 的图像的 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47419427/