[英]S3 upload files with rake script, carrierwave and fog not working
我需要將一堆文件上傳到S3。 我正在使用carrierwave + fog上傳文件的rails項目...如果我執行以下操作,一切都可以從控制台正常工作:
image = ImageUploader.new
image.store!(File.open("image.jpg"))
這是測試,現在我必須上傳一堆文件,所以我在名為upload.rake的lib / tasks文件夾中創建了一個rake腳本...在這個upload.rake中我執行以下操作:
task :upload => :environment do
path = "app/assets/images"
Dir.foreach(path) do |file|
if file != "." && file !=".."
uploader = ImageUploader.new
uploader.store!(File.open(File.join(path,file)))
puts file
end
end
end
但它只是不起作用,我不明白為什么......它給出了這個錯誤:
rake aborted!
Broken pipe (Errno::EPIPE)
任何人都知道可能會發生什么? 這讓我發瘋了......這是--trace的最后一部分
.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/openssl/buffering.rb:292:in `syswrite_nonblock'
.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/openssl/buffering.rb:292:in `write_nonblock'
.rvm/gems/ruby-1.9.2-p320/gems/excon-0.16.7/lib/excon/socket.rb:139:in `write'
.rvm/gems/ruby-1.9.2-p320/gems/excon-0.16.7/lib/excon/ssl_socket.rb:84:in `write'
.rvm/gems/ruby-1.9.2-p320/gems/excon-0.16.7/lib/excon/connection.rb:269:in `request_kernel'
.rvm/gems/ruby-1.9.2-p320/gems/excon-0.16.7/lib/excon/connection.rb:103:in `request'
.rvm/gems/ruby-1.9.2-p320/gems/fog-1.6.0/lib/fog/core/connection.rb:20:in `request'
.rvm/gems/ruby-1.9.2-p320/gems/fog-1.6.0/lib/fog/aws/storage.rb:392:in `request'
.rvm/gems/ruby-1.9.2-p320/gems/fog-1.6.0/lib/fog/aws/requests/storage/put_object.rb:43:in `put_object'
.rvm/gems/ruby-1.9.2-p320/gems/fog-1.6.0/lib/fog/aws/models/storage/file.rb:133:in `save'
謝謝!!
幾天前我遇到了這個問題,解決方法是我沒有正確指定我的存儲桶 - 所以可能值得一看,確保您的存儲桶名稱正確並且權限設置正確。 沒有指定存儲桶時,這似乎有點荒謬的一般錯誤!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.