html - 使用 AWS 策略显示来自 S3 的图像的 Web 应用程序

标签 html amazon-s3 frontend amazon-cognito

背景

  • 我们有一个网络应用程序,它使用 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/

相关文章:

html - 有没有一种简单的方法可以为 HTML <div> 制作自定义边框形状?

php - 为什么我的 Amazon S3 图像加载缓慢?

session - Symfony2 中并发的前端和后端 session

javascript - 响应式 Div

html - margin-right 不适用于相对元素? (宽度 100%)

javascript - 如何仅在表的一行中重新加载值

上传到 S3 时 Ruby Backup gem 失败。 37 分钟后连接重置

amazon-web-services - 在AWS云形成模板中如何根据环境将策略附加到角色

javascript - 如何在对象中添加项目?

javascript - Material-UI 表格标签中的 Formik