从S3下载文件到Rails 4应用程序

我有一个AWS VM,它运行每日任务并生成多个文件。 我希望我的Rails应用程序下载这些文件并将它们放在应用程序中的文件夹中。 Ruby中是否有一个gem或方法可以做到这一点?

我知道如何使用s3cmd在bash中执行此操作,我想我可以创建一个脚本来以这种方式获取它们,但是寻找更原生的rails方式。

我正在使用这些文件中的数据作为应用程序,但我不希望用户能够下载它们。

aws-sdk v2 gem提供了一个从Amazon S3下载对象的简单界面。

 require 'aws-sdk' s3 = Aws::S3::Resource.new( region: 'us-east-1', access_key_id: '...', secret_access_key: '...' ) s3.bucket('bucket-name').object('key').get(response_target: '/path/to/file') 

官方Amazon AWS Ruby SDK: http : //aws.amazon.com/sdk-for-ruby/

还有一个名为Fog的开源gem,它可能更容易用于更简单的项目: http : //fog.io/

在v1 aws-sdk ,从s3下载的代码是……

 File.open(local_file_path, "wb") do |file| s3_object(s3_key).read do |chunk| file.write(chunk) end end