【问题标题】:How to setup aws-sdk to get file content from a public file in s3 bucket?如何设置 aws-sdk 以从 s3 存储桶中的公共文件中获取文件内容?
【发布时间】:2018-09-20 19:12:23
【问题描述】:

我正在尝试设置aws-sdk 包以在我的s3 bucket 中获取文件内容,但每次我收到此错误missing credentials。我在s3-bucket 中将文件公开,并且我在存储桶中设置了cors。我没有得到,如何使用aws-sdk?s3-bucket获取json文件中的json对象?

还有我的疑问是,如何设置aws-sdk 来获取公共文件内容?

我尝试使用new AWS.SharedIniFileCredentials 设置凭据,但我面临SharedIniFileCredentials is not a constructor 控制台错误。我在~/.aws/credentials/ 文件中有凭据。

他们是否需要设置凭据以获取s3-bucket 中的公共文件内容??

如果是,我如何从我的主目录中读取凭据? 这安全吗,因为我使用 webpack 为我的 react 应用程序生成捆绑包??

感谢和问候, 沙希达尔。

【问题讨论】:

  • 这是适用于 Javascript 的 AWS 开发工具包,对吧?您是在尝试从服务器端还是客户端代码连接到 S3?
  • 仅限客户端代码。

标签: reactjs amazon-web-services amazon-s3 webpack aws-sdk


【解决方案1】:

AWS SDK for Javascript 上的文档有两部分关于设置凭证

从这些链接中,您可以看到服务器端有五种方法,客户端有三种方法,它们完全没有重叠。使用共享凭证文件的方法只能在服务器端使用。要从客户端连接到 S3,您需要使用第二个链接中列出的方法之一:

第三个选项是“在脚本中硬编码”。根据警告,不要这样做,它会使您的亚马逊凭证公开。我不确定他们为什么会提到它,除非是为了让您可以将其用作开发/测试工具。

我建议您继续按照Using Amazon Incognito Identity 的说明进行操作。

【讨论】:

  • 嗨 redbirdo.. 我正在使用 s3 存储桶获取多租户应用程序的应用程序配置数据。在客户端登录到应用程序之前,我需要将租户信息保存在 s3 存储桶中的公共文件中。例如,每个租户 n 的客户端徽标和一些自定义标题/子标题等。我正在尝试基于子域获取文件内容。我没有得到,如何实现这一目标??
  • 这听起来与原始问题无关?如果是这样,您需要创建一个新问题,然后应该有空间更全面地描述该问题。我的回答是否帮助您解决了凭据问题?
猜你喜欢
  • 2019-02-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2022-01-11
  • 2022-01-19
  • 1970-01-01
  • 2019-08-21
相关资源
最近更新 更多