如何将图像上传到Amazon S3到ruby中的文件夹?

时间:2014-01-27 20:13:56

标签: ruby api amazon-web-services upload amazon-s3

我想这样做:

AWS.config(
      :access_key_id => '...', 
      :secret_access_key => '...'
    )
    s3 = AWS::S3.new
    bucket_name = 'bucket_name'
key = "#{File.basename(avatar_big)}"
s3.buckets[bucket_name].objects[key].write(:file => avatar_big_path)

这适用于文件,文件上传到设置存储桶的根目录。

但是,如何将其上传到根目录中的作品照片

我试过

key = "photos/#{File.basename(avatar_big)}"

但这不起作用。

编辑:错误消息 enter image description here

谢谢

2 个答案:

答案 0 :(得分:1)

我和OP有同样的问题。这对我有用:

key = "photos/example.jpg"
bucket = s3.buckets[bucket_name]
filepath = Pathname.new("path/to/example.jpg")

o = bucket.objects[key]
o.write(filepath)

我要检查的东西将是您尝试使用的对象键。没有太多关于限制的文档(请参阅thisthis),但错误消息中显示的内容对我来说很可疑。

答案 1 :(得分:0)

尝试在文件密钥中包含路径:

 s3.buckets[bucket_name].objects[key].write(:file => "photos/#{avatar_big_path}")