如何设置 aws-sdk 以从 s3 存储桶中的 public 文件获取文件内容?

How to setup aws-sdk to get file content from a public file in s3 bucket?

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

而且我的疑问是,如何设置 aws-sdk 以获取 public 文件内容?

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

他们是否需要设置凭据才能在 s3-bucket 中获取 public 文件内容??

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

感谢和问候, 沙希达尔。

Javascript 的 AWS SDK 文档有两个关于设置凭据的部分

从这些link可以看出服务端有5种方式,客户端有3种方式,完全没有交集。使用共享凭证文件的方法只能在服务器端使用。要从客户端连接到 S3,您需要使用第二个 link:

中列出的方法之一

第三个选项是'Hard coded in the script'。根据警告,不要这样做,这将使您的亚马逊凭证公开可用。我不确定他们为什么要提到它,除非是为了让您可以将它用作开发/测试工具。

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