2012-01-04 37 views
10

Tôi nhận được lỗi sau khi cố gắng tải lên hình ảnh bằng cách sử dụng lưu trữ kẹp giấy và s3. Các ứng dụng làm việc upload tốt tại địa phương, nhưng khi tôi đã thực hiện những thay đổi cần thiết để sử dụng s3 tôi nhận được như sau:Rails 3.1, paperclip, s3 - uninitialized hằng số AWS :: S3 :: Base

NameError trong ImagesController # tạo

uninitialized liên tục 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' 

mô hình/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: ################################ 

đá quý Gói: AWS-sdk (1.2.5) kẹp giấy (2.4.5) ray (3.1.3)

+0

Có thể bạn cần phải bao gồm AWS :: S3' ở đâu đó . – Robin

Trả lời

25

Kẹp giấy 2.4.5 vẫn sử dụng đá quý aws-s3. (README trên Github đề cập đến aws-sdk, nhưng đó chỉ dành cho chi nhánh chính chưa được phát hành).

Thay đổi dòng Gemfile của bạn để:

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

hoặc sử dụng các chi nhánh tổng thể thay vì phiên bản ổn định (trong đó tất nhiên có một số rủi ro liên quan):

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

CẬP NHẬT: Kẹp giấy 2.5 .0, phát hành vào ngày 13 tháng 1 năm 2012, hiện sử dụng aws-sdk.

+1

Nâng cấp kẹp giấy lên 2.5.0 đã làm thủ thuật cho tôi –

+0

điều này có nghĩa là chúng ta cần loại bỏ dòng 'đá quý' aws-s3 ",: require =>" aws/s3 "' khỏi tệp gem? – Parth

+0

@Paarth Với Paperclip> = 2.5.0, bạn không còn cần đá quý aws-s3 nữa (nó sử dụng aws-sdk bây giờ). Tôi không biết nếu để lại đá quý aws-s3 trong Gemfile của bạn sẽ gây ra bất kỳ xung đột, mặc dù. –

-2

ai đó đã quyết định giết chết kẹp giấy cho người dùng cửa sổ đã làm tốt công việc.

bó cài đặt

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) 

nên kiểm tra ra viên ngọc 'kẹp giấy',: git => "git: //github.com/thoughtbot/paperclip.git" trực tiếp không giải quyết vấn đề này. gem "aws-s3",: require => "aws/s3" giải quyết vấn đề ngay bây giờ nhưng có lẽ không có bản cập nhật cho 2.5.0 hiện tại

Các vấn đề liên quan