繁体   English   中英

S3上传文件与rake脚本,carrierwave和雾无法正常工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM