gpt4 book ai didi

ruby-on-rails - 如何解析位于 Amazon S3 存储桶中的 CSV 文件

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:19 27 4
gpt4 key购买 nike

下面是我用来从应用程序中解析 CSV 的代码,但我想解析位于 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

最佳答案

在某些情况下,S3 对象的权限不允许公开访问。内置的 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)

使用 AWS SDK 逐行解释:第 1 行. 初始化第 2 行。选择一个桶。第 3 行。选择一个对象并将其作为字符串获取。第 4 行。实际上是 CSV.parse('the string'),但我还添加了一个选项并映射到它上面,以防它对您有所帮助。

关于ruby-on-rails - 如何解析位于 Amazon S3 存储桶中的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com