0

私のアプリは Heroku でホストされています。ファイルを Heroku の public/ フォルダではなく、Linode に直接アップロードできるかどうか疑問に思っています。

私のアプリは Heroku と Linode の両方を使用しています。この 2 つは、Web サービス リクエストを介して互いに通信します。しかし、一般的に言えば、生成/アップロードされたファイルは Linode にのみ保存し、Heroku には保存しないようにしています。

今、ユーザーがファイルをアップロードできるようにしたい状況があります。最終目的地は Linode です。しかし、現在、クライアント PC -> Heroku -> Linode から移動する必要があります。ただし、最適なソリューションはクライアント PC -> Linode です。

既存のコードを再配線しようとする前に、質問しようと思いました。次のように storage_dir メソッドを変更するとうまくいきますか?

def storage_dir
  return http://<linode>/<local-folder>
end

助けてくれてありがとう

4

1 に答える 1

0

それで、あなたはCarrierWaveを使っていますか?Linode に現在どのようにアップロードしているかはわかりませんが、試してみます。

そのため、GitHub の CarrierWave のドキュメントによると、config/initializers のcarrierwave.rb ファイルに次のようなものを追加する必要があります。

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',          # required
    :aws_access_key_id      => 'xxx',          # required
    :aws_secret_access_key  => 'yyy',          # required
  }
  config.fog_directory  = 'name_of_directory'  # required
end 

もちろん、それは Amazon AWS S3 を使用している場合です。http://ruby-doc.org/gems/docs/p/phpfog-fog-0.4.1.2/Fog/Linode/Compute/Mock.htmlでLinode (およびその他のストレージ サービス) のいくつかのフォグ ドキュメントを見つけました。 「new(options={})」では、 が表示されます@linode_api_key = options[:linode_api_key]。したがって、CarrierWave を使用して Linode に直接アップロードできると思います:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'Linode',       
    :linode_api_key         => 'xxx',          
  }
  config.fog_directory  = 'name_of_directory'  
end 
于 2013-10-01T21:41:29.170 に答える