ruby 将CSV流从Rails上传到S3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 将CSV流从Rails上传到S3相关的知识,希望对你有一定的参考价值。

def query_results
  ActiveRecord::Base.connection.execute('SELECT name FROM accounts;').to_a
end

# @params [Array<Hash>] records
def generate_csv(records)
  attributes = records.first.keys

  CSV.generate(headers: true) do |csv|
    csv << attributes

    records.each do |record|
      csv << record
    end
  end
end

# requires aws-sdk
def prepare_s3
  Aws.config.update(
    {
      region: 'us-west-2',
      credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']),
    }
  )
end

def export(data, bucket_name, file_name)
  object = Aws::S3::Resource.new.bucket(bucket_name).object(file_name)
  object.put(body: data)
end

以上是关于ruby 将CSV流从Rails上传到S3的主要内容,如果未能解决你的问题,请参考以下文章

从 Ruby on Rails 多次上传到 Amazon S3 - 使用啥后台处理系统?

使用 ruby​​/rails 将文件上传到网站

将 Rails 表单发布到 s3 上传的策略和签名问题

将 CSV 文件从 JSON 数据上传到 S3 存储桶

Rails 6,无法将 s3_direct_upload gem 上传到 UPLOAD,查看工作正常

ruby 使用Rails的SQL到CSV