Rails 3.1, скрепка, s3 - неинициализированная константа AWS:: S3:: Base

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

NameError в ImagesController # create

неинициализированная константа 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) рельсы (3.1.3)

Ответ 1

Paperclip 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: Paperclip 2.5.0, выпущенный 1/13/2012, теперь использует aws-sdk.

Ответ 2

кто решил убить paperclip для пользователей Windows, проделала хорошую работу.

установить пакет

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 'paperclip',: git = > "git://github.com/thoughtbot/paperclip.git" напрямую не решает проблему. gem "aws-s3",: require = > "aws/s3" решает проблему на данный момент, но это, вероятно, означает, что обновление до версии 2.5.0 сейчас