1

したがって、linode でホストされている実行中の Rails 3 アプリから画像をアップロードしたいのですが、ファイルのアップロードはローカルで機能しますが、リモートで実行しようとすると失敗します。いくつかのオプションを読みましたが、ほとんどすべてが次のようになります。

CarrierWave.configure do |config|

  if Rails.env.development? || Rails.env.test?
    config.storage = :file
  else
  config.storage = :fog
  config.fog_credentials = {
      :provider               => 'AWS',
      :aws_access_key_id      =>  'some_access_key_id',
      :aws_secret_access_key  => 'some_secret_key',
      :region                 => 'eu-west-1'
   }
   config.fog_directory = 'bucket_name'
   end
end

しかし、それをlinodeオプションに変更すると、

ArgumentError (linode is not a recognized storage provider):
  app/controllers/users_controller.rb:50:in `create'

次に、sftp オプションを使用しました。

CarrierWave.configure do |config|
config.sftp_host = "my.host.com"
config.sftp_user = "username"
config.sftp_folder = "public_html/uploads"
config.sftp_url = "http://my.host.com/uploads"
config.permissions = 0666
config.directory_permissions = 0777
config.storage = :file  
config.sftp_options = {
  :password => "mypass",
  :port     => 22
}
end

しかし、私はまだ同じエラーが発生しました:

ArgumentError (linode is not a recognized storage provider):
 app/controllers/users_controller.rb:50:in `create'

私はgitを使用してaptanaとrails 3.2で作業しており、変更を加えてコミットするたびにcapistranoで展開しています。ここで同様の質問に出くわしましたが、 CarrierWave を使用して Linode にファイルをアップロードしていますが、回答がありません。キャリアウェーブでそれができるかどうかはわかりませんが、どんな提案でも受け付けます。あなたができるどんな助けも大歓迎です。

ありがとうございました!

4

2 に答える 2