2012-01-04 5 views
10

मुझे पेपरक्लिप और एस 3 स्टोरेज का उपयोग करके एक छवि अपलोड करने का प्रयास करते समय निम्न त्रुटि मिल रही है। एप्लिकेशन ठीक अपलोडिंग स्थानीय स्तर पर काम किया, लेकिन जब मैं आवश्यक परिवर्तन करने के बाद S3 मैं निम्नलिखित मिल उपयोग करने के लिए:रेल 3.1, पेपरक्लिप, एस 3 - अनियमित स्थिर एडब्ल्यूएस :: एस 3 :: बेस

ImagesController # में NameError

अप्रारंभीकृत निरंतर एडब्ल्यूएस :: S3 :: बेस

बनाने

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 

config/amazon_s3.yml

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

बंडल जवाहरात: एडब्ल्यूएस-sdk (1.2.5) पेपरक्लिप (2.4.5) रेल (3.1.3)

+0

के लिए 2.5.0 के लिए कोई अपडेट नहीं है, आपको शायद कहीं भी AWS :: S3' शामिल करना होगा । – Robin

उत्तर

25

पेपरक्लिप 2.4.5 अभी भी aws-s3 मणि का उपयोग करता है। (गीथब पर रीडमे aws-sdk को संदर्भित करता है, लेकिन यह केवल अप्रकाशित मास्टर शाखा के लिए है)।

करने के लिए अपने Gemfile लाइन बदलें:

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

या स्थिर संस्करण के बजाय मास्टर शाखा का उपयोग (जो निश्चित रूप से शामिल कुछ जोखिम है):

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

अद्यतन: पेपरक्लिप 2.5 .0, 1/13/2012 को जारी किया गया, अब aws-sdk का उपयोग करता है।

+1

पेपरक्लिप को 2.5.0 तक अपग्रेड करने के लिए मेरे लिए चाल है –

+0

क्या इसका मतलब यह है कि हमें लाइन 'मणि "aws-s3" को हटाने की आवश्यकता है, आवश्यकता है => "aws/s3" gem फ़ाइल से? पेपरक्लिप के साथ – Parth

+0

@ पार्थ> = 2.5.0, अब आपको aws-s3 मणि की आवश्यकता नहीं है (यह अब aws-sdk का उपयोग करता है)। मुझे नहीं पता कि आपके जेमफाइल में aws-s3 मणि छोड़ने से कोई संघर्ष हो सकता है, हालांकि। –

-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) 

तो मणि 'पेपरक्लिप' बाहर की जाँच,: Git => "Git: //github.com/thoughtbot/paperclip.git" सीधे मुद्दे को हल नहीं करता है। मणि "aws-s3",: आवश्यकता => "aws/s3" अब के लिए समस्या हल करती है लेकिन इसका मतलब है कि अब