RoR: не удается подключить скрепку к Amazon S3 - PullRequest
0 голосов
/ 06 января 2010

Я решил развернуть свое приложение в Heroku, и я следовал их руководствам. Тем не менее, я пытаюсь подключиться к своей корзине Amazon S3 с помощью плагина paperclip прямо сейчас, и я получаю эту ошибку:

ArgumentError in Images # index

Отображение app / views / images / index.html.erb, где поднята строка # 19:

синтаксическая ошибка в строке 0, столбец 39: `bucket: (МОЕ ВЕДРО ЗДЕСЬ)
access_key_id: (МОЙ КЛЮЧ К ДОСТУПУ ЗДЕСЬ)
secret_access_key: (МОЙ СЕКРЕТНЫЙ КЛЮЧ К ДОСТУПУ ЗДЕСЬ)
«
Извлеченный источник (вокруг строки № 19):

16: <% = h image.created_at%>
17: <% = h image.updated_at%>
18:
19: <%, если image.img.exists? тогда%>
20:

<% = image_tag image.img.url (: большой палец)%>


21: <% else%>
22:

Нет прикрепленных фотографий, загрузите одно.

RAILS_ROOT: C: / Пользователи / Mariusz / Сайты / wiw_development

Трассировка приложения | Framework Trace | Полная трассировка
C: /Ruby/lib/ruby/1.8/yaml.rb: 133: в load'<br> C:/Ruby/lib/ruby/1.8/yaml.rb:133:in загрузить '
C: /Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb: 236: в find_credentials'<br> C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb:176:in parse_credentials '
C: /Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb: 138: в extended'<br> C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb:137:in instance_eval '
C: /Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/storage.rb: 137: в extended'<br> C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/attachment.rb:269:in расширение '
C: /Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/attachment.rb: 269: в initialize_storage'<br> C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip/attachment.rb:51:in инициализировать
C: /Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip.rb: 326: в new'<br> C:/Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip.rb:326:in attachment_for '
C: /Users/Mariusz/Sites/wiw_development/vendor/plugins/paperclip/lib/paperclip.rb: 229: в img'<br> C:/Users/Mariusz/Sites/wiw_development/app/views/images/index.html.erb:19:in _run_erb_app47views47images47index46html46erb '
C: /Users/Mariusz/Sites/wiw_development/app/views/images/index.html.erb: 12: in each'<br> C:/Users/Mariusz/Sites/wiw_development/app/views/images/index.html.erb:12:in _run_erb_app47views47images47index46html46erb '
C: /Users/Mariusz/Sites/wiw_development/app/controllers/images_controller.rb: 7: в `index '

Мои файлы выглядят так:

1) app / models / image.rb

Изображение класса has_and_belongs_to_many: пары
validates_presence_of: img_file_name
has_attached_file: img,: styles => {: thumb => "100x100 #",: page => "400x320>"},: storage =>: s3,: s3_credentials => "# {RAILS_ROOT} /config/s3.yml «
конец

2) config / s3.yml

ведро: (МОЕ ВЕДРО ЗДЕСЬ)
access_key_id: (МОЙ КЛЮЧ К ДОСТУПУ ЗДЕСЬ)
secret_access_key: (МОЙ СЕКРЕТНЫЙ КЛЮЧ К ДОСТУПУ ЗДЕСЬ)

Как мне заставить его работать?

Ответы [ 2 ]

9 голосов
/ 06 января 2010

C: /Ruby/lib/ruby/1.8/yaml.rb: 133: в нагрузке - это ошибка YAML. Возможно, у вас плохо отформатированный файл YML. Попробуйте этот код в вашем скрипте / консоли:

require 'yaml'
my_hash = YAML::load File.read("#{RAILS_ROOT}/config/s3.yml")

Ниже приведен пример из моей рабочей конфигурации:

  has_attached_file :data,
  :styles => {
    :small => "100x100#",
    :medium => "400x400#",
    :large => "640x480#"
  },
  :storage => :s3,
  :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
  :path => ":attachment/:id/:style.:extension",
  :bucket => "xxx"

И файл yml:

development:
  access_key_id: ***
  secret_access_key: ***
0 голосов
/ 08 января 2010

Вы были правы. Мой текстовый редактор 'e' сохранял файл yaml в странном формате с некоторыми дополнительными символами. Все работает прямо сейчас. СПАСИБО!

...