2012-04-13 28 views
13

के माध्यम से आधार यह एक मुद्दा है कि मुझे इस तथ्य के साथ समस्या है कि जब मैं नए संस्करण (संस्करणों) के साथ एडब्ल्यूएस-एसडीके (aws-s3 के बजाय) में अपग्रेड किया गया पेपरक्लिप अब मैं एडब्ल्यूएस :: एस 3 :: बेस.स्टब्लिश_कनेक्शन नहीं कह सकता! बिलकुल।अनन्य निरंतर स्थिर AWS :: S3 :: AWS-SDK

मैं

AWS::S3::Base.establish_connection!(:access_key_id => '****', :secret_access_key => '***') 

मेरी कोड में कहाँ कभी फोन मैं इस त्रुटि मिलती है ...

NameError (uninitialized constant AWS::S3::Base): 
    app/models/asset.rb:28:in `move_upload_from_temp_to_final_resting_place' 

उत्तर

21

हाँ, aws-sdkAWS::S3::Base जरूरत नहीं है। मुझे लगता है कि यह सबसे करीब बराबर है: जैसा कि यह पहले पृष्ठ है कि मेरे गूगल खोज पर मेरे लिए ऊपर पॉप इस मुद्दे मैं मैं कैसे इसे हल करने में कामयाब रहे पर टिप्पणी करेंगे हल करने के लिए था

s3 = AWS::S3.new(:access_key_id => '****', :secret_access_key => '***') 
+1

यह सही है। Aws-sdk अपने स्वयं के लगातार कनेक्शन पूल को बनाए रखता है, स्पष्ट रूप से कनेक्शन स्थापित करने की आवश्यकता नहीं है। –

+0

मैंने मूल रूप से इसे अपने सभी एडब्ल्यूएस कोड को बहुत शुरुआती संस्करणों में डाउनग्रेड करके तय किया। लेकिन मैं इसका उपयोग करके फिर से अपग्रेड करने में सक्षम था और मेरे एजेक्स अपलोडर और मेरे ईबे एपीआई मणि दोनों के साथ काम अच्छी तरह से काम कर रहा था। धन्यवाद। –

+0

धन्यवाद। यह खोज के कुछ घंटों बचाया :) – Salil

2

। एडब्ल्यूएस एसडीके 2.0.47

require 'rubygems' 
require 'aws/s3' 

include AWS::S3 

AWS::S3::Base.establish_connection!(
    :access_key_id => '', 
    :secret_access_key => '' 
) 

मुझे बस एडब्ल्यूएस :: एस 3 शामिल था। और मुझे संदेह है कि बहुत से लोग इस मुद्दे में भाग रहे हैं क्योंकि मुझे अभी तक एक सीधा जवाब नहीं दिख रहा है।

0

मैंने कॉन्स्टेंटिनो समाधान की कोशिश की लेकिन दुर्भाग्य से, यह मेरे लिए काम नहीं करता था। include AWS::S3 का उपयोग करके निम्नलिखित अपवाद फेंक दिया।

TypeError: wrong argument type Class (expected Module)

यह वह जगह है के रूप में मैं एक और तरीका है कि delayed_job का उपयोग कर शुरू किया गया था में aws-s3 के मॉड्यूल और तरीकों का उपयोग कर रहा था कि कैसे मैं एक ही मुद्दा

AWS.send(:remove_const, :S3) if AWS::S3.class == Class 
require Gem::Specification.find_by_name("aws-s3").gem_dir + "/lib/aws/s3.rb" 

हल, इस पैच मुद्दा नहीं बनाया था मेरे मामले में। लेकिन यह किसी अन्य उपयोग मामले में समस्याएं पैदा कर सकता है क्योंकि aws-sdk की कक्षा अब aws-s3 के मॉड्यूल के साथ बदल दी गई है।

संबंधित मुद्दे