行,所以我嘗試了兩種方法均未能有沒有辦法使用ruby gem aws-s3從s3下載文件?
使用 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")
=> #<AWS::S3::Bucket:0x007fea3e2898c8 @attributes={"xmlns"=>"http://s3.amazonaws.com/doc/2006-03-01/", "name"=>"test_bucket", "prefix"=>nil, "marker"=>nil, "max_keys"=>1000, "is_truncated"=>true}, @object_cache=[#<AWS::S3::S3Object:0x70322020960960 '/test_bucket/00000188110119_1000000731213/'>, #<AWS::S3::S3Object:0x70322020960660 '/test_bucket/00000188110119_1000000731213/10_08-52-08.mp3'>, #<AWS::S3::S3Object:0x703220209
bucket.size
=> 1000
bucket.objects[0]
=> #<AWS::S3::S3Object:0x70322028046080 '/test_bucket/00000188110119_1000000731213/'>
bucket.objects[1]
=> #<AWS::S3::S3Object:0x70322028046040 '/test_bucket/00000188110119_1000000731213/10_08-52-08.mp3'>
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
UPDATE
bucket.objects[1]
=> #<AWS::S3::S3Object:0x70322028046040 '/test_bucket/00000188110119_1000000731213/10_08-52-08.mp3'>
bucket.objects[1].read
NoMethodError: undefined method `read' for #<AWS::S3::S3Object:0x70322028046040>
bucket.objects[1].class
=> AWS::S3::S3Object
正如你可以看到什麼,我試圖做的就是複製
第一種方法mp3從S3存儲桶複製到本地計算機....任何想法如何做到這一點
[使用發送\ _File到遠程源(Ruby on Rails的)](可能重複http://stackoverflow.com/questions/1322030/using-send-file-to -a-remote-source-ruby-on-rails) – 2014-04-18 20:01:56