आपको बाल्टी के लिए अपने क्षेत्र के विशिष्ट एंडपॉइंट को कॉन्फ़िगर करने की आवश्यकता है (जहां इसे बनाया गया था)। आप के साथ ऐसा कर सकते हैं:
AWS.config(:s3_endpoint => '...')
s3 = AWS::S3.new
या
s3 = AWS::S3.new(:s3_endpoint => '...')
आप डीएनएस comptible बाल्टी नाम का उपयोग (यह भी बाल्टी नाम में डॉट्स बचने के लिए) द्वारा भविष्य में इससे बचने कर सकते हैं। यदि एक बाल्टी नाम एक वैध सबडोमेन है, तो आप क्षेत्र विशिष्ट अंतराल को कॉन्फ़िगर किए बिना अपनी बाल्टी को संबोधित कर सकते हैं। निम्नलिखित पर विचार करें:
http:://bucket-name.s3.amazonaws.com/path/to/object.txt
कहाँ बाल्टी "बाल्टी-नाम" और वस्तु कुंजी का नाम है कि "path/to/object.txt"। यह बाल्टी किसी भी क्षेत्र में मौजूद हो सकती है, और फिर भी आप इसे "डिफ़ॉल्ट" क्षेत्र का उपयोग करके एक्सेस कर सकते हैं। जब बाल्टी नाम DNS-संगत नहीं है, उसके बाद URL लगता है:
http://s3.amazon.com/bucket/name/path/to/object.txt
उपरोक्त उदाहरण में, बाल्टी है "बाल्टी/नाम" है, जो DNS संगत नहीं है। यह पथ का हिस्सा बन जाता है, और अब s3.amazon.com को क्षेत्र विशिष्ट अंत बिंदु (यदि क्लासिक क्षेत्र में बाल्टी नहीं बनाया गया था) के साथ प्रतिस्थापित किया जाना चाहिए।
जैसा कि किसी और ने बताया है, पथ ऑब्जेक्ट कुंजी का हिस्सा होना चाहिए, बाल्टी नाम नहीं। यह आपको एक सामान्य उपसर्ग द्वारा वस्तुओं को समूहबद्ध करने की अनुमति देता है। '/' को वर्चुअल फ़ोल्डर (केवल सम्मेलन द्वारा) के रूप में उपयोग किया जाता है।
# print the key of every object with the given prefix
s3.buckets['bucket-name'].objects.with_prefix('path/to/').each do |object|
puts object.key
end
स्रोत
2012-10-19 04:15:58
संभावित रिपोस्ट http://stackoverflow.com/questions/6581502/problem-in-accessing-bucket-of-my-aws-s3-account – sgud
@sgud यह सही नहीं है, आपके द्वारा प्रदान किया गया लिंक AWS-S3 के बारे में है मणि जिसमें एक अलग वाक्यविन्यास है - एक वर्ग के निरंतर – Anatoly
"my_folder" को ऑब्जेक्ट के नाम का एक हिस्सा है, बाल्टी – Anatoly