1

我已经使用 Ruby on Rails 工作了几个月。我的要求是将 Amazon S3 中的图像带到本地系统。我能够得到对象,但没有得到图像。

我已经编写了以下代码。

s3_details = YAML.load(File.read("#{Rails.root}/config/s3.yml"))    
s3 = AWS::S3.new(
  :access_key_id      => s3_details[Rails.env]['s3_access_key'],
  :secret_access_key  => s3_details[Rails.env]['s3_secret'] 
)
bucket = s3.buckets['bucket_name'] 
bucket.objects 

有谁能够帮我?

4

1 回答 1

2

我会看看
它具有支持多个提供商的巨大优势。所以如果明天,你想使用 S3 以外的东西,你可以很容易地使用相同的 API。

您也可以非常轻松地读取文件。

connection = Fog::Storage.new({
  provider:              'AWS',
  aws_access_key_id:     '',
  aws_secret_access_key: ''
})
directory = connection.directories.new(key: 'bucket_name')


directory.files.each do |s3_file|
  File.open(s3_file.key, 'w') do |local_file|
    local_file.write(s3_file.body)
  end
end

上面的示例将连接到存储桶bucket_name,并下载在那里找到的所有文件。

于 2013-03-06T13:08:47.130 回答