2012-02-20 5 views
1

Я установил приложение с помощью Paperclip для освещения проблемы с аватаром пользователя. Я хочу хранить файлы на amazon s3. Я не могу найти решение этой проблемы, чтобы в конце концов я решил спросить здесь:Rails paperclip with s3 - Недопустимый аргумент

Вот настройки соединения в модели пользователя:

has_attached_file :avatar, 
:styles => { :small => "150x150#", :medium => "300x300#" }, 
:storage => :s3, 
:s3_credentials => Rails.root.join('config/s3.yml') 

Тогда вот s3.yml файл:

bucket: sghub  
access_key_id: ### 
secret_access_key: ##### 

Конечно, в моем gemfile я добавил:

gem 'paperclip' 
gem 'aws-s3', :require => 'aws/s3' 

Приложение развернуто на Heroku, поэтому ошибка, которую я получаю от heroku logs команда выглядит так:

2012-02-20T07:13:58+00:00 app[web.1]: AWS::S3::PermanentRedirect (The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.) 

Кроме того, в режиме разработки страницы ошибок, как:

Errno::EINVAL in UsersController#update 
Invalid argument 

Кроме того, кажется, что файлы не загружать на s3, так как они не видны в консоли управления в моем ковше. Теперь я почти не знаю, как я пытался настроить все, как во всех учебниках и документации. Есть идеи?

ответ

0

Опция :bucket должна находиться вне ключа :s3_credentials в хэшах вариантов. Сделать это выглядит так:

has_attached_file :avatar, 
    :styles   => { :small => "150x150#", :medium => "300x300#" }, 
    :storage  => :s3, 
    :s3_credentials => Rails.root.join('config/s3.yml') 
    :bucket   => 'sghub'

И удалить bucket из config/s3.yml

Вот документы: http://rubydoc.info/gems/paperclip/Paperclip/Storage/S3

+1

Я думаю, что проблема была с конфигурацией сервера Европейского Amazon s3, потому что в скрепку умолчанию является сервер США , В противном случае ваш совет помог мне разобраться. Большое спасибо! –

Смежные вопросы