2014-01-27 82 views
1

我试图做这样的:如何将图像上传到Amazon S3到Ruby中的文件夹?

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) 

这一个文件工作良好,该文件被上传到建立叶片的根部。

但是,如何将其上传到foloder 照片即位于根?

我已经试过

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

但这不起作用。

编辑:错误信息 enter image description here

谢谢

+0

为什么这不工作?你有错误吗? –

+0

没有错误,但图像保存到根目录,而不是保存到相应的文件夹。 – user984621

+0

已更新的答案。 – Gotjosh

回答

0

尝试,包括在文件中的关键路径:

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

不幸的是,照片转到根目录而不是目录。 – user984621

+0

仍然一样 - 我已经附加到OP的错误消息。 – user984621

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),但错误消息中显示的内容对我来说看起来很可疑。