【问题标题】:Reading in a JSON from S3 bucket using JavaScript使用 JavaScript 从 S3 存储桶中读取 JSON
【发布时间】:2021-09-27 04:38:21
【问题描述】:

我已尝试阅读有关此内容的信息,但尚未提出任何建议。我有一个 JSON 每天都会输出到 S3 存储桶。我有一个用 JavaScript 构建的网络应用程序,我希望能够简单地从 S3 存储桶中读取 JSON,而无需每天下载 JSON 并在 GitHub 中重新提交等。

如何读取托管在 S3 存储桶上的 JSON?理想情况下,我希望它像实时连接(而不是下载)一样工作,因为 JSON 每天都会重新上传到 S3。

我需要适用于 JavaScript 的 AWS 开发工具包吗?澄清一下,这是一个用原生 JavaScript 而非 Node 构建的应用程序,因此一个相当简单的解决方案将是理想的。

【问题讨论】:

    标签: javascript json amazon-web-services amazon-s3


    【解决方案1】:

    到 S3 的“实时连接”的概念不切实际,但适当的替代方法是在将 JSON 文件上传到 S3 存储桶时触发 JavaScript 代码运行。

    为此,编写和部署一个简单的 Node.js Lambda 函数,并配置 S3 以在上传 JSON 文件时触发 Lambda 函数。您的 Lambda 函数将使用 JavaScript SDK 获取 JSON 文件并执行所需的任何处理。您的 Lambda 函数应配置一个 IAM 角色,允许其获取上传的对象。

    如果您更喜欢使用 JavaScript/TypeScript 以外的语言,请参阅 AWS Tools 了解支持的语言 SDK 列表和 Lambda runtimes 了解支持的 Lambda 运行时列表。

    【讨论】:

    • 谢谢.. 有非节点解决方案吗?我现在没有足够的带宽来学习节点。或者,我可以在 Mac 终端上执行 crontab,每天将 s3 json 下载到我的本地存储库。但这对我来说现在并不适用 ..
    • 是的,我想使用 javascript... 只是不是节点。为什么实时连接不切实际?即使用 Javascript 读取 json 的 url 之类的 .. 这听起来很合理吧?
    • 你建议在哪里运行这个 JavaScript?在浏览器中?关于实时连接问题,我什至不确定您所说的“实时连接”是什么意思。使用 S3(使用预签名的 URL 或公共对象)向公共 URL 发出 fetch 是完全可行的,但我不会将其描述为“实时连接”。
    • 是的,这是一个由部署在 github 上的 javascript 构建的 Web 应用程序。现在我在 mac 中有一个每天下载 s3 文件的 crontab。如果有办法不必这样做,那将是理想的。理想情况下,我可以在 javascript 中获取 url。这有意义吗?
    • 您可以将 JSON 存储在 S3 中并通过 URL 使其可用,然后使用您喜欢的任何客户端获取/请求库。如果对象可以公开,那么就这样做并简单地获取mybucket.s3.amazonaws.com/xyz.json。如果它不能公开,那么要么找到一种方法为客户端提供一个预签名的 URL 到该对象,或者找到一种方法将 AWS 凭证获取给客户端,以便您可以使用 JavaScript 开发工具包(在浏览器中)发出 GetObject 请求.
    猜你喜欢
    • 1970-01-01
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多