首页 > 解决方案 > 从 AWS S3 Bucket 获取数据文件并在 Rails 中解析?

问题描述

我正在 Rails 中创建一个 Ruby 脚本,它将:

1)使用 AWS S3 SDK 创建一个 S3 对象 2)遍历存储桶并下载(获取)每个文件 3)通过迭代,将文件存储在内存中,然后转换为字符串 4)解析字符串以获取数据并重新上传基于解析数据的文件到同一存储桶中的适当文件夹

所以到目前为止我在 Rails 工作中的代码:

  def aws_get
    io = IO.new(1)
    bucket_col = []
    s3 = Aws::S3::Resource.new(region: 'us-east-1', access_key_id: Rails.application.credentials.dig(:aws, :access_key_id), secret_access_key: Rails.application.credentials.dig(:aws, :secret_access_key))
    s3.bucket('missouridata').objects.each do |object| 
      obj = s3.bucket('missouridata').object(object.key)
      file = obj.get(response_target: io) 
      ???
    end
  end

问号是我不知道下一步该做什么的地方。如何获取存储在内存中的文件并将其转换为要解析的字符串?

标签: ruby-on-railsrubyamazon-web-servicesamazon-s3

解决方案


我为你准备了完美的解决方案。我一直在使用雾宝石来操作 S3 存储桶一段时间。它几乎可以为您做任何事情。

这是参考链接。

https://www.ironin.it/blog/manipulating-files-on-amazon-s3-storage-with-rubys-fog-gem.html


推荐阅读