【问题标题】:Web app to display image from S3 using AWS policyWeb 应用程序使用 AWS 策略显示来自 S3 的图像
【发布时间】:2018-05-05 06:58:06
【问题描述】:

背景

  • 我们有一个使用 aws-sdk for JavaScript 来允许使用 AWS Cognito 登录的 Web 应用程序。
  • 我们希望允许用户根据 AWS 策略访问 S3 上的文件。
  • 使用AWS.config.credentials = new AWS.CognitoIdentityCredentials(...),我们能够执行登录并接收令牌
  • 使用这个令牌,我们在桶上执行listObject。

问题

在 S3 上成功登录和listObject 后,将<img /> 标签的src 属性设置为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 存储桶的图像的最简洁、最简单的方法是什么?

【问题讨论】:

    标签: html amazon-s3 frontend amazon-cognito


    【解决方案1】:

    您可以像这样使用 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

    【讨论】:

    • 谢谢,但问题是当我们设置<img />标签的src属性时,来自客户端的传出请求的标头中没有aws-token。跨度>
    • @Michael 你找到解决这个问题的方法了吗?
    • @RetoAebersold 我做了回复中提到的事情。您需要使用 Cognito 从 S3 获取图像,然后将其加载到 img 中。
    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    相关资源
    最近更新 更多