2016-06-26 10 views
0

アタッチメントストレージ用の搬送波とフォグを備えたレールアプリを構築しています。私のテスト環境では、フォグローカルストレージを使用しています。キャリア波フォグローカルストレージフルアタッチメントパス

この設定で完全な添付ファイルパスを取得する方法を探しています。

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    provider:    'Local', 
    local_root:    '/Users/me/fog', 
    endpoint:    '/Users/me/fog', 
    } 

    config.fog_directory = 'test.myapp.com 
    config.fog_public  = false 
    config.fog_attributes = { 'Cache-Control' => 'max-age=315576000' } 
end 

私は(AWS S3のような)他のストレージオプションを使用する場合、私はちょうどmy_object.my_attachment_urlまたはmy_object.my_attachment.pathを行うことによって、添付ファイルへの完全なURLを取得することができます。

ただし、Localストレージを使用している場合、設定オプションの相対パスはmy_object/my_attachment/1/test.jpgに限られます。

このローカルファイルへの完全なパスを取得する方法はありますか。私例えば

、私が探しています出力は次のようになります。私にとって/Users/me/fog/test.myapp.com/my_object/my_attachment/1/test.jpg

答えて

0

、答えはcarrierwaveアップローダークラスに変更しました。

私はすべてのS3、特定の情報は、この文字列の前に挿入されたとして、AWS S3のためにうまく働い

def store_dir 
    "#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

を持っていました。しかし、これを霧Localと一緒に使用するには、次のように追加しました。

if Rails.env.test? 
    def base_path 
    "#{File.expand_path(CONFIG.fog_local_root)}/#{CONFIG.fog_directory}/" 
    end 
else 
    def base_path 
    '' 
    end 
end 
関連する問題