एडब्ल्यूएस एस 3: जिस बाल्टी को आप एक्सेस करने का प्रयास कर रहे हैं, उसे निर्दिष्ट समापन बिंदु का उपयोग करके संबोधित किया जाना चाहिए


185

मैं AWS-SDK-Core रूबी जेम के साथ अपलोड की गई छवि फ़ाइलों को हटाने का प्रयास कर रहा हूं।

मेरे पास निम्नलिखित कोड हैं:

require 'aws-sdk-core'

def pull_picture(picture)
    Aws.config = {
        :access_key_id => ENV["AWS_ACCESS_KEY_ID"],
        :secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
        :region => 'us-west-2'
    }

    s3 = Aws::S3::Client.new

    test = s3.get_object(
        :bucket => ENV["AWS_S3_BUCKET"],
        :key => picture.image_url.split('/')[-2],   
    )
end

हालाँकि, मुझे निम्न त्रुटि मिल रही है:

जिस बाल्टी को आप एक्सेस करने का प्रयास कर रहे हैं, उसे निर्दिष्ट समापन बिंदु का उपयोग करके संबोधित किया जाना चाहिए। कृपया इस समापन बिंदु पर भविष्य के सभी अनुरोध भेजें।

मुझे पता है कि क्षेत्र सही है क्योंकि अगर मैं इसे बदलता हूं us-east-1, तो निम्न त्रुटि दिखाई देती है:

निर्दिष्ट कुंजी मौजूद नहीं है।

मुझसे यहां क्या गलत हो रहा है?


6
यह मेरे साथ हुआ जब मैंने गलती से निर्दिष्ट बाल्टी के लिए गलत क्षेत्र निर्दिष्ट किया।
मफिन मैन

यह गलत AWS क्षेत्र के नाम के उपयोग के कारण हो सकता है।
दत्तात्रय

जवाबों:


311

ऐसा लगता है कि यह बाल्टी एक अलग क्षेत्र में बनाई गई थी, IE हमें-पश्चिम -2 नहीं। केवल यही समय है जब मैंने देखा है "जिस बाल्टी को आप एक्सेस करने का प्रयास कर रहे हैं उसे निर्दिष्ट समापन बिंदु का उपयोग करके संबोधित किया जाना चाहिए। कृपया इस समापन बिंदु पर भविष्य के सभी अनुरोध भेजें।"

यूएस स्टैंडर्ड है us-east-1


30
ऐसा कभी नहीं सोचा होगा, लेकिन यह मेरे लिए काम किया! AWS SDK में, "US Standard" क्षेत्र AWSRegionUSEast1 प्रतीत होता है।
नेरोलकेन

एक जवाब के लिए खोज रहा था कि कैसे क्षेत्र निर्धारित किया जाए। धन्यवाद!
सिल्वर

6
यदि आप रूबी क्लाइंट का उपयोग कर रहे हैं, तो क्लाइंट को इनिशियलाइज़ करने से पहले बाल्टी के लिए ENV["AWS_REGION"]सही मान (जैसे "us-east-1") पर सेट करें
Abe Voelker

क्या होगा यदि आपको एक से अधिक बाल्टी (जैसे देव / मंचन / उत्पादन आदि) का उपयोग करने की आवश्यकता है?
येकाटा

1
मुझे जावा में भी यही समस्या थी। आपके समाधान में मदद मिली। वे S3 में अजीब नामों का उपयोग करते हैं। क्षेत्र के लिए समापन बिंदु , रिपॉजिटरी में ऑब्जेक्ट नाम की कुंजी ...
गंगनुस

21

कंसोल में अपने बाल्टी स्थान की जांच करें, फिर इसे संदर्भ के रूप में उपयोग करें कि किस बिंदु का उपयोग करना है: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region


2
क्या आप बता सकते हैं कैसे? region: 'us-west-1',किसके साथ बदलें ?
आमिर अफरीदी

@AamirAfridi यह निर्भर करता है कि आप किस SDK का उपयोग कर रहे हैं। मैं iOS SDK का उपयोग कर रहा हूं, और क्रेडेंशियल प्रदाता में, एक पैरामीटर है जहां आप क्षेत्र सेट कर सकते हैं। मैंने उस क्षेत्र में सेट किया है जिसका मैं उपयोग करने का इरादा रखता हूं।
जे। क्यू।

मेरे पास एक समान उदाहरण था, जहां मैंने एक बाल्टी के क्षेत्र को अनुकूलित किया, लेकिन मैंने डोमेन नाम को अपडेट करने के लिए ommitted किया। फ़िक्स पिछले डोमेन नाम को नए के साथ बदलना था, जैसा कि उस बाल्टी के लिए S3 कंसोल में समापन बिंदु संदर्भ में देखा गया था। उदाहरण: मैंने उस त्रुटि को ठीक करने के लिए प्रतिस्थापित https://s3.amazonaws.com/mybucket/myasset.jpgकिया https://mybucket.s3-ap-southeast-2.amazonaws.com/myasset.jpg
फाबिन हदादी

19

मुझे एक समान त्रुटि का सामना करना पड़ रहा था क्योंकि बाल्टी क्षेत्र में थी us-west-2और पथ में URL पैटर्न में बकेटनाम था। एक बार, मैंने फ़ाइलों को हथियाने के लिए URL उपडोमेन के रूप में बकेटनाम के लिए URL पैटर्न को बदल दिया और यह काम कर गया।

उदाहरण के लिए पिछला URL था

https://s3.amazonaws.com/bucketname/filePath/filename

फिर मैंने इसे बदल दिया

https://bucketname.s3.amazonaws.com/filePath/filename

पूरी तरह से योग्य नाम डालकर मेरे लिए काम किया। s3-ap-southeast-1.amazonaws.com/ng-spark/Java8.json बाल्टी के लिए जो सिंगापुर उपलब्धता जोन में है
नीलेश गुलेल

1

कई S3 API पैकेज के लिए (मुझे हाल ही में npm s3 पैकेज में यह समस्या आई थी ) आप उन मुद्दों पर चल सकते हैं, जहाँ इस क्षेत्र को US मानक माना जाता है, और नाम से देखने पर आपको इस क्षेत्र को स्पष्ट रूप से परिभाषित करने की आवश्यकता होगी यदि आप एक बाल्टी की मेजबानी करना चुनते हैं। उस क्षेत्र के बाहर।


1

S3Client के निर्माण के दौरान आप किसी विशेष क्षेत्र के समापन बिंदु मैपिंग को निर्दिष्ट कर सकते हैं। यदि डिफ़ॉल्ट है s3.amazonaws.comतो बाल्टी बनाई जाएगी us-east-1जिसमें उत्तरी वर्जीनिया है।

AWS डॉक्स में S3 के एंडपॉइंट्स और क्षेत्रों पर अधिक विवरण: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

इसलिए, हमेशा S3Client बनाते समय एंडपॉइंट / क्षेत्र के बारे में सुनिश्चित करें और उसी क्षेत्र में एक ही क्लाइंट का उपयोग करके S3 रिसोर्स का उपयोग करें।

यदि बाल्टी AWS S3 कंसोल से बनाई गई है, तो उस बाल्टी के लिए कंसोल से क्षेत्र की जांच करें फिर उपरोक्त लिंक में वर्णित समापन बिंदु विवरण का उपयोग करके उस क्षेत्र में एक S3 क्लाइंट बनाएं।


1

उपरोक्त उत्तर में से किसी ने भी मेरा मुद्दा तय नहीं किया।

उपरोक्त उत्तर संभवतः आपकी समस्या का कारण हैं, लेकिन मेरा मुद्दा यह था कि मैं गलत बाल्टी नाम का उपयोग कर रहा था। यह एक मान्य बाल्टी नाम था, यह सिर्फ मेरी बाल्टी नहीं थी।

जिस बाल्टी की ओर मैं इशारा कर रहा था वह एक अलग क्षेत्र में थी कि मेरा लंबोदर समारोह आपके बाल्टी नाम की जाँच करता है!


0

पीपीएल के लिए जो अभी भी इस मुद्दे का सामना कर रहे हैं, s3_host को विन्यास हैश में निम्नानुसार जोड़ने का प्रयास करें

   :storage => :s3,
   :s3_credentials => {:access_key_id => access key,
   :secret_access_key => secret access key},
   :bucket => bucket name here,
   :s3_host_name => s3-us-west-1.amazonaws.com or whatever comes as per your region}.

यह मेरे लिए मुद्दा तय किया।


0

मुझे यह त्रुटि तब मिली जब मैंने एक बाल्टी का उपयोग करने की कोशिश की जो मौजूद नहीं थी।

मैंने गलती से बाल्टी नाम चर के साथ एक पथ चर को स्विच किया और इसलिए बाल्टी नाम में फ़ाइल पथ मान था। तो शायद डबल-चेक करें, अगर आपके अनुरोध पर आपके द्वारा सेट की गई बाल्टी का नाम सही है।


0

मेरी भी यही त्रुटि थी। यह तब हुआ जब s3 क्लाइंट को अलग-अलग समापन बिंदु के साथ बनाया गया था जो कि बाल्टी बनाते समय स्थापित किया गया था।

  • त्रुटि कोड - बाल्टी को पूर्व क्षेत्र के साथ स्थापित किया गया था।

s3Client = New AmazonS3Client (AWS_ACCESS_KEY, AWS_SECRET_KEY, RegionEndpoint.USWest2)

  • ठीक कर

s3Client = नया AmazonS3Client (AWS_ACCESS_KEY, AWS_SECRET_KEY, RegionEndpoint। USEast1 )


0

मैंने एक ही मुद्दे का सामना किया है। बहुत संघर्ष के बाद मैंने पाया कि असली मुद्दा com.amazonaws निर्भरता के साथ है। निर्भरता जोड़ने के बाद यह त्रुटि गायब हो गई।


0

मैं ब्रिटेन में रहता हूँ 'us-west-2 के लिए प्रयास कर रहा था। इसलिए-यूरोप-पश्चिम -2 ’पर पुनर्निर्देशित किया गया। S3 के लिए सही क्षेत्र 'eu-west-2' है


0

यह मेरे लिए तब हुआ जब मेरे पास s3 बाल्टी बनाने के लिए उपयोगकर्ता (एक्सेस कुंजी / गुप्त कुंजी) द्वारा उपयोग की जा रही नीति पर एक स्रोत आईपी बाधा थी। मेरा आईपी सटीक था - लेकिन किसी कारण से यह काम नहीं करेगा और यह त्रुटि दी।


0

एक लंबी खोज के बाद, मुझे एक काम करने वाला समाधान मिला। मुद्दा गलत होने के कारण थाregion-code

नीचे क्षेत्र-संहिताओं की सूची दी गई है, उपयुक्त एक सेट करें और आपकी समस्या हल हो जाएगी।

Code                         Name
US East (Ohio)               us-east-2

US East (N. Virginia)       us-east-1

US West (N. California)     us-west-1

US West (Oregon)            us-west-2

Asia Pacific (Hong Kong)    ap-east-1

Asia Pacific (Mumbai)       ap-south-1

Asia Pacific (Osaka-Local)  ap-northeast-3

Asia Pacific (Seoul)        ap-northeast-2

Asia Pacific (Singapore)    ap-southeast-1

Asia Pacific (Sydney)       ap-southeast-2

Asia Pacific (Tokyo)        ap-northeast-1

Canada (Central)            ca-central-1

Europe (Frankfurt)          eu-central-1

Europe (Ireland)            eu-west-1

Europe (London)             eu-west-2

Europe (Paris)             eu-west-3

Europe (Stockholm)         eu-north-1

Middle East (Bahrain)      me-south-1

South America (São Paulo)   sa-east-1

आप बाल्टी नाम दाएं कोने पर क्लिक करके अपना क्षेत्र-कोड पा सकते हैं।

यहां छवि विवरण दर्ज करें

मोड विवरण के लिए क्लिक करें


0

एक अलग AWS प्रोफ़ाइल का उपयोग करते समय मुझे इस समस्या का सामना करना पड़ा। जब मैंने व्यवस्थापक अनुमतियों वाले किसी खाते का उपयोग किया था, तो मुझे त्रुटि दिखाई दी, इसलिए अनुमतियों की समस्याओं की संभावना कम प्रतीत हुई।

यह वास्तव में मेरा एक पालतू जानवर है कि AWS उपयोगकर्ता संदेशों से त्रुटि संदेशों को जारी करने के लिए आवश्यक कार्रवाई के साथ ऐसे थोड़े सहसंबंध जारी करने के लिए प्रवण है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.