2016-04-07 1 views
1

Я использую FOG с Paperclip. Я добавил следующий код, чтобы дать динамическое имя каталога.Каталог тумана добавляет локальный путь системы с URL-адресом amazon, когда я пытаюсь дать динамический каталог тумана.

fog_directory: proc { |file| file.instance.repo.name } 

Это создает каталог туман правильно, но когда я пытаюсь получить URL добавил он локальный путь системы с амазонки URL.

https://s3.amazonaws.com/%23%3CProc:[email protected]/home/apple/projects/project.name/config/initializers/paperclip.rb:8%3E/abc.jpg

+1

Можете ли вы предоставить полный файл скрепки. –

ответ

0

Я решил это таким образом, путем переопределения модуля Paperclip.

module Paperclip 
    module Storage 
     module Fog 
      def host_name_for_directory 
       if directory_name.to_s =~ Fog::AWS_BUCKET_SUBDOMAIN_RESTRICTON_REGEX 
       "#{directory_name}.s3.amazonaws.com" 
       else 
       "s3.amazonaws.com/#{directory_name}" 
       end 
      end 

      def directory 
       @directory ||= connection.directories.new(key: directory_name) 
      end 

      def directory_name 
     if @options[:fog_directory].respond_to?(:call) 
      @options[:fog_directory].call(self) 
     else 
      @options[:fog_directory] 
     end 
      end 
     end 
    end 
end