2012-01-04 7 views
10

При попытке загрузить изображение с помощью хранилища paperclip и s3 возникает следующая ошибка. Приложение работало нормально загружая локально, но когда я сделал необходимые изменения, чтобы использовать s3 я получаю следующее:Rails 3.1, paperclip, s3 - неинициализированная константа AWS :: S3 :: Base

NameError в ImagesController # создать

неинициализированного постоянной AWS :: S3 :: Base

Gemfile

source 'http://rubygems.org' 

gem 'rails', '3.1.3' 

gem 'sqlite3' 

group :assets do 
    gem 'sass-rails', '~> 3.1.5' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
    gem 'dynamic_form' 
end 

gem 'aws-sdk' 
gem 'paperclip' 

модели/Image.rb

class Image < ActiveRecord::Base 
    has_attached_file :file, 
         :styles => { 
          :featured => "970x560>", 
          :thumb => "192x112>" 
         }, 
         :storage => :s3, 
         :s3_credentials => "#{Rails.root}/config/amazon_s3.yml" 
end 

конфигурации/amazon_s3.yml

bucket: myapp-dev 
access_key_id: #################### 
secret_access_key: ################################ 

Другие драгоценные камни: AWS-SDK (1.2.5) (2.4.5 Paperclip) рельсы (3.1.3)

+0

Возможно, вам нужно «включить AWS :: S3» где-то , – Robin

ответ

25

Скрепка 2.4.5 все еще использует драгоценный камень aws-s3. (README на Github относится к aws-sdk, но это только для неизданной ветви мастера).

Изменить строку Gemfile к:

gem "aws-s3", :require => "aws/s3" 

или использовать мастер ветви вместо стабильной версии (которая, конечно, имеет некоторый риск, связанный с):

gem 'paperclip', :git => "git://github.com/thoughtbot/paperclip.git" 
gem "aws-sdk" 

UPDATE: Скрепка 2,5 .0, выпущенный 1/13/2012, теперь использует aws-sdk.

+1

Модернизация скрепки до 2.5.0 сделала трюк для меня –

+0

означает ли это, что нам нужно удалить строку «gem» aws-s3 »,: require =>« aws/s3 »из файла gem? – Parth

+0

@Paarth With Paperclip> = 2.5.0, вам больше не нужен драгоценный камень aws-s3 (теперь он использует aws-sdk). Я не знаю, что если вы оставите драгоценный камень aws-s3 в своем Gemfile, это вызовет любые конфликты. –

-2

Кто-то решил убить скрепку для окон, пользователь проделал хорошую работу.

комплект установки

Fetching git://github.com/thoughtbot/paperclip.git 
remote: Counting objects: 5602, done. 
remote: Compressing objects: 100% (2419/2419), done. 
remote: Total 5602 (delta 3868), reused 4704 (delta 3065) 
Receiving objects: 100% (5602/5602), 855.88 KiB | 314 KiB/s, done. 
Resolving deltas: 100% (3868/3868), done. 
error: unable to create file test/fixtures/question?mark.png (Invalid argument) 

так проверить Gem 'скрепку',: мерзавец => "мерзавец: //github.com/thoughtbot/paperclip.git" напрямую не решает проблему. gem «aws-s3»,: require => «aws/s3» решает проблему на данный момент, но это, вероятно, означает, что обновление до версии 2.5.0 на данный момент отсутствует.

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