Каталог тумана добавляет локальный системный путь с URL-адресом amazon при размещении изображений на s3 с помощью драгоценного камня скрепки

Я пытаюсь разместить свой веб-сайт с изображениями вложений скрепки на aws-s3 с помощью драгоценного камня тумана. Но мой каталог тумана выбирает неправильный путь, но добавляет к нему путь к моей локальной файловой системе.

это мой код

class RealEstate < ActiveRecord::Base
  has_attached_file :image,
                    :storage => :fog,
                    :fog_credentials => "#{Rails.root}/config/s3.yml",
                    :fog_directory => "#{Rails.root}/config/fog.yml"
end

если я определю имя ведра только здесь, тогда это сработает, но тогда нельзя будет использовать другое ведро для разных env

:fog_directory => "development_bucket_name" #works fine but cant use different bucket for different env

это мой туман.yml

development:
  fog_directory: development_bucket
staging:
  fog_directory: testing_bucket
production:
  fog_directory: production_bucket

путь, который он создает:

https://s3.amazonaws.com//home/Desktop//config/fog.yml/real_estate/image/000/000/185/original/4bec7.png?1396429186

person Bloomberg    schedule 16.04.2014    source источник
comment
Да Greame я сделал, когда я определяю имя ведра в модели, все работает нормально. :fog_directory => development_bucket_name, но тогда я не могу определить разные сегменты для разных окружений.   -  person Bloomberg    schedule 16.04.2014
comment
что такое туман_каталог? Куда загружаются изображения? хранится? В тестовой среде... что должно быть? Должен ли он существовать?   -  person Jwan622    schedule 21.03.2016
comment
В чем разница между ресурсами_хост и туманом_каталогом в тумане_учетных данных?   -  person Jwan622    schedule 21.03.2016


Ответы (1)


Paperclip понятия не имеет, что строка, которую вы передаете, является путем к файлу конфигурации — она ожидает фактическое имя корзины.

Вам нужно проанализировать файл yaml и извлечь из него имя корзины. Например

directories = YAML.load(File.read(Rails.root.join('config', 'fog.yml')))
has_attached_file :image,
                  :storage => :fog,
                  :fog_credentials => "#{Rails.root}/config/s3.yml",
                  :fog_directory => directories[Rails.env]['fog_directory']
person Frederick Cheung    schedule 16.04.2014