2014-01-27 77 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),但錯誤消息中顯示的內容對我來說看起來很可疑。