ruby-on-rails – carrierwave,Excon :: Errors :: MovedPermanently in RegistrationsController#update error

我一直试图让carrierwave与亚马逊s3合作.代替
storage :s3

我有

storage :fog

将其更改为存储:s3立即出错

https://stackoverflow.com/questions/10629827/carrierwave-cant-convert-nil-into-string-typeerror-when-using-s3

所以我把它改成了存储:像下面的rdoc所说的雾.

http://rubydoc.info/gems/carrierwave/frames

然而,当我尝试上传图像时,我得到了这个疯狂的错误.我正在使用设计宝石.

我的完整堆栈跟踪是

Excon::Errors::MovedPermanently in RegistrationsController#update

Excon::Errors::MovedPermanently (Expected(200) <=> Actual(301 Moved Permanently)
  request => {:connect_timeout=>60,:headers=>{"Content-Length"=>95472,"Content-Type"=>"image/jpeg","x-amz-acl"=>"private","Cache-Control"=>"max-age=315576000","Date"=>"Thu,17 May 2012 05:28:55 +0000","Authorization"=>"AWS AKIAIN6SC3YSGBSUKV4Q:kZOG9mG01jYn48ImFMYbgxAAQRk=","Host"=>"user.a.777.s3-eu-west-1.amazonaws.com:443"},:instrumentor_name=>"excon",:mock=>false,:read_timeout=>60,:retry_limit=>4,:ssl_ca_file=>"/Users/sasha/.rvm/gems/ruby-1.9.3-p125/gems/excon-0.13.4/data/cacert.pem",:ssl_verify_peer=>true,:write_timeout=>60,:host=>"user.a.777.s3-eu-west-1.amazonaws.com",:path=>"/uploads%2Fuser%2Fimage%2F59%2Fidea.jpg",:port=>"443",:query=>nil,:scheme=>"https",:body=>#<File:/Users/sasha/Desktop/rails_projects/blue_eyes/public/uploads/tmp/20120516-2228-19160-9893/idea.jpg>,:expects=>200,:idempotent=>true,:method=>"PUT"}
  response => #<Excon::Response:0x007fd72a146820 @body="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>PermanentRedirect</Code><Message>The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message><RequestId>F5F5AF888E837622</RequestId><Bucket>user.a.777</Bucket><HostId>IShK3GIthzCQysLOKXnR+ijJiHmMuUtXBOpFxQM4uCvJgkEHfmFn43LL4oWmpT82</HostId><Endpoint>s3.amazonaws.com</Endpoint></Error>",@headers={"x-amz-request-id"=>"F5F5AF888E837622","x-amz-id-2"=>"IShK3GIthzCQysLOKXnR+ijJiHmMuUtXBOpFxQM4uCvJgkEHfmFn43LL4oWmpT82","Content-Type"=>"application/xml","Transfer-Encoding"=>"chunked",17 May 2012 05:29:00 GMT","Connection"=>"close","Server"=>"AmazonS3"},@status=301>):
  app/controllers/registrations_controller.rb:30:in `update'

我不知道这甚至意味着什么.

在我的初始化器/ carrierwave.rb我有..

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',# required
    :aws_access_key_id      => 'somekey',# required
    :aws_secret_access_key  => 'secretkey',# required
    :region                 => 'eu-west-1'  # optional,defaults to 'us-east-1'
  }
  config.fog_directory  = 'bucket.name'                     # required
  #config.fog_host       = 'https://s3.amazonaws.com'            # optional,defaults to nil
  config.fog_public     = false                                   # optional,defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional,defaults to {}
end

和我的上传者文件有

#storage :s3
  storage :fog
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end

我的宝石文件有

gem 'carrierwave'
gem 'thin'
gem 'fog'

当我启动我的服务器而不是webrick时,它在开发中也使用了瘦.

我的配置错了吗?
帮助将不胜感激!
我一直被困在这个载波/ s3问题上

解决方法

我今天早些时候碰到了这个,这是该地区的一个问题.只需将其取出并按默认设置即可.
CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',# required
    :aws_secret_access_key  => 'secretkey'       # required
  }
  config.fog_directory  = 'bucket.name'                     # required
  #config.fog_host       = 'https://s3.amazonaws.com'       # optional,defaults to nil
  config.fog_public     = false                             # optional,defaults to true
  config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional,defaults to {}
end

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...