2016-04-07 1 views
1

J'utilise FOG avec Paperclip. J'ai ajouté le code suivant pour donner le nom de répertoire dynamique.Le répertoire Fog ajoute le chemin du système local avec l'URL amazon lorsque j'essaie de donner un répertoire dynamique de brouillard

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

Il crée le répertoire correctement brouillard mais lorsque je tente d'obtenir url, il a ajouté le chemin du système local avec url amazon.

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

+1

Pouvez-vous partager un trombone complet. –

Répondre

0

Je résolus de cette façon en remplaçant le module 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