2016-06-26 3 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