2012-01-04 17 views
10

Recibo el siguiente error al intentar cargar una imagen utilizando paperclip y s3 ​​storage. La aplicación funcionó bien subir a nivel local, pero cuando he hecho los cambios necesarios para utilizar s3 me sale el siguiente:Rails 3.1, clip, s3 - constante no inicializada AWS :: S3 :: Base

NameError en ImagesController # crear

sin inicializar constantes 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' 

modelos/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 

config/amazon_s3.yml

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

gemas liados: AWS-SDK (1.2.5) paperclip (2.4.5) carriles (3.1.3)

+0

Probablemente necesites 'incluir AWS :: S3' en algún lado . – Robin

Respuesta

25

Paperclip 2.4.5 todavía usa la gema aws-s3. (El archivo README en Github se refiere a aws-sdk, pero eso es solo para la rama principal inédita).

cambiar su línea Gemfile a:

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

o utilizar la rama principal en lugar de la versión estable (que por supuesto tiene algunos riesgos involucrados):

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

ACTUALIZACIÓN: Paperclip 2.5 .0, lanzado el 1/13/2012, ahora usa aws-sdk.

+1

Actualizar el clip a 2.5.0 me funcionó –

+0

¿significa que tenemos que eliminar la línea 'gema" aws-s3 ",: require =>" aws/s3 "' del archivo gema? – Parth

+0

@Paarth Con Paperclip> = 2.5.0, ya no necesita la gema aws-s3 (usa aws-sdk ahora). No sé si dejar la gema aws-s3 en tu Gemfile causará algún conflicto. –

-2

quien decidió matar paperclip para windows usuario hizo un buen trabajo.

paquete de instalación

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) 

lo que la comprobación a cabo joya 'clip',: git => "git: //github.com/thoughtbot/paperclip.git" directamente no resuelve el problema. gem "aws-s3",: require => "aws/s3" resuelve el problema por ahora, pero probablemente significa que no hay actualización en el 2.5.0 por ahora

Cuestiones relacionadas