【问题标题】:Upload file to AWS for ingression to Postgres DB将文件上传到 AWS 以进入 Postgres DB
【发布时间】:2021-09-16 15:01:24
【问题描述】:

我需要使用 Web 表单将文件上传到 AWS,然后触发一个函数将其导入 Postgres 数据库。我将文件导入到使用 Java 在本地工作的数据库中,但需要它在云中工作 它需要上传带有一些设置(例如要导入哪个表)的文件,以通过 Java 函数将其导入 Postgres DB 我可以使用 php 将文件上传到 EC2 实例,但随后需要在该文件上触发 lambda 函数。我的研究表明 S3 存储桶可能是更好的解决方案?寻找最适合哪些服务的指针

【问题讨论】:

    标签: java postgresql amazon-web-services amazon-s3 amazon-ec2


    【解决方案1】:

    您的方案中有两个主要步骤:

    第 1 步:将文件上传到 Amazon S3

    创建一个将数据直接上传到 Amazon S3 存储桶的 HTML 表单很简单。

    但是,允许 Internet 上的任何人使用该表单通常是不明智的,因为他们可能会上传任意数量和类型的文件。通常,您会希望您的后端确认他们有权上传文件。然后你的后端可以Upload objects using presigned URLs - Amazon Simple Storage Service,授权用户执行上传。

    有关各种编码语言的一些示例,请参见:

    第 2 步:将数据加载到数据库中

    在 Amazon S3 存储桶中创建对象后,您可以将 S3 配置为触发 AWS Lambda 函数,该函数可以用您选择的编程语言编写。

    对象的 Bucket 和 Filename (Key) 将通过 event 参数传递给 Lambda 函数。然后 Lambda 函数可以:

    • 从 S3 读取对象
    • 连接到数据库
    • 将数据插入所需的表中

    编写此功能的代码是您的工作,但您会在 Internet 上找到许多示例。

    【讨论】:

    • 谢谢。我已经编写了第 2 部分,除了它是在本地读取而不是从 S3 读取,这是一个简单的更改。我很欣赏第 1 部分——这正是我所需要的!谢谢
    • 我的解决方案是从 webform 上传到 S3 存储桶,触发 lambda 函数将文件输入 PostGres 数据库。我使用自定义元数据标签来指示 lambda 在文件上运行哪些函数以及要导入的表名
    • @JamesFarrow 很高兴听到您成功了!欢迎您添加自己的答案来详细说明您所做的事情,以便未来的读者可以从您的经验中受益。
    【解决方案2】:

    您可以使用方便的语言使用 AWS 开发工具包来调用 Lambda。
    请参考这个documentation

    【讨论】:

      猜你喜欢
      • 2017-08-31
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      相关资源
      最近更新 更多