Aga*_*ans 6 ruby csv ruby-on-rails heroku amazon-s3
下面是我用来从应用程序中解析CVS的代码,但我想解析位于Amazon S3存储桶中的文件.它也需要在推送到Heroku时工作.
namespace :csvimport do
desc "Import CSV Data to Inventory."
task :wiwt => :environment do
require 'csv'
csv_file_path = Rails.root.join('public', 'wiwt.csv.txt')
CSV.foreach(csv_file_path) do |row|
p = Wiwt.create!({
:user_id => row[0],
:date_worn => row[1],
:inventory_id => row[2],
})
end
end
end
Run Code Online (Sandbox Code Playgroud)
小智 6
有S3的情况,当S3 Object的权限不允许公共访问时.内置的Ruby函数确实假定路径可公开访问,并且不考虑AWS S3特异性.
s3 = Aws::S3::Resource.new
bucket = s3.bucket("bucket_name_here")
str = bucket.object("file_path_here").get.body.string
content = CSV.parse(str, col_sep: "\t", headers: true).map(&:to_h)
Run Code Online (Sandbox Code Playgroud)
使用AWS开发工具包的每行说明:第1行.初始化第2行.选择存储桶.第3行.选择一个对象并将其作为String.第4行.有效地CSV.parse('字符串'),但我还添加了一个选项并映射它以防万一它可以帮助你.
归档时间: |
|
查看次数: |
3566 次 |
最近记录: |