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的主要内容,如果未能解决你的问题,请参考以下文章