Existe uma maneira de baixar um arquivo de s3 usando o ruby ​​gem aws-s3?

Ok, então eu tentei dois methods ambos falharam

Primeiro método usando a gema aws-s3

require 'aws/s3' S3ID = "MYACCESS" S3KEY = "MYKEY" include AWS::S3 AWS::S3::Base.establish_connection!( :access_key_id => S3ID, :secret_access_key => S3KEY ) bucket = AWS::S3::Bucket.find("test_bucket") => #"http://s3.amazonaws.com/doc/2006-03-01/", "name"=>"test_bucket", "prefix"=>nil, "marker"=>nil, "max_keys"=>1000, "is_truncated"=>true}, @object_cache=[#, #, # 1000 bucket.objects[0] => # bucket.objects[1] => # bucket.objects[1].key => "00000188110119_1000000731213/10_08-52-08.mp3" File.open("/Users/matt/local_copy.mp3", "w") do |f| f.write(bucket.objects[1]) end 

ATUALIZAR

 bucket.objects[1] => # bucket.objects[1].read NoMethodError: undefined method `read' for # bucket.objects[1].class => AWS::S3::S3Object 

Como você pode ver o que eu estou tentando fazer é copiar o mp3 do balde s3 e copiá-lo para o computador local …. quaisquer idéias sobre como fazer isso

Veja: http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/S3/S3Object.html

Basicamente você tem que usar os methods read e write nos objects S3.

Assim :

 File.open("/Users/matt/local_copy.mp3", "w") do |f| f.write(bucket.objects[1].read) end 

Se você não for forçado a usar a gem ‘aws-s3’, você pode querer verificar a fog , que faz basicamente as mesmas coisas, somente ela é agnóstica em relação ao backend (aws, rackspace, ..), e parece ser mais ativo. Na parte inferior desta página, há um exemplo mostrando o que você deseja alcançar