Rake任务创建CSV,然后上传到S3。怎么样?

时间:2013-07-08 12:12:51

标签: ruby-on-rails amazon-s3

我有一个rake任务,可以创建一个CSV文件。现在我将这个文件存储到我的/ tmp文件夹中(我正在使用Heroku)。这个CSV文件与任何模型都没有关联,它只是我从几个API中提取的一些数据,再加上我模型中的一些数据。

我想从Heroku下载此文件,但这似乎不可能。所以,我的问题是:为了将该文件上传到Amazon S3,我想查找哪个gem?我见过像Paperclip这样的宝石,但这似乎与模型有关,而这不是我的情况。我只想将我在/ tmp中的CSV文件上传到我的Amazon S3存储桶中。

由于

2 个答案:

答案 0 :(得分:1)

您可以使用aws-s3 gem

S3Object.store('filename_in_s3.txt', open("source_file.tmp"), 'bucket_name')

您应该定义tmp文件的确切路径,例如:

open("#{Rails.root}/tmp/source_file.tmp")

答案 1 :(得分:0)

CarrierWave可以通过Fog库直接将您的Ruby应用程序与S3直接连接。 CarrierWave不是在模型级别上运行,而是使用Uploader类,您可以从API和数据源中剔除,这正是您要完成的任务。