2016-08-30 9 views
5

के साथ बनाना संभव है, एक जावा स्टैकट्रैक त्रुटि देख रहा है जिसका अर्थ है कि शून्य क्षेत्र के साथ एक एस 3 बाल्टी है।क्या एनडब्ल्यूएस एस 3 बाल्टी को शून्य क्षेत्र

क्या यह संभव है? मैंने बिना किसी सफलता के त्रुटि और एक नल-क्षेत्र एस 3 बाल्टी फिर से बनाने की कोशिश की।

com.amazonaws.services.s3.model.AmazonS3Exception: The bucket is in this region: null.Please use this region to retry the request (Service: Amazon S3; Status Code: 301; Error Code: PermanentRedirect; Request ID: EA0959BA1B1D56A7) 
     at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1372) 
     at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:919) 
     at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:697) 
     at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:449) 
     at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:411) 
     at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:360) 
     at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3962) 
     at com.amazonaws.services.s3.AmazonS3Client.getBucketPolicy(AmazonS3Client.java:2544) 
     at com.amazonaws.services.s3.AmazonS3Client.getBucketPolicy(AmazonS3Client.java:2504) 
+3

में> परिणाम क्यों नहीं आप ऐसा करना चाहते हैं? यदि आपको इस क्षेत्र की परवाह नहीं है, तो या तो createBucket ("bucketName") का उपयोग करें या बकेट ("bucketName", Region.US_Standard) बनाएं। आप शून्य क्यों गुजरना चाहते हैं? – stdunbar

+0

यह एक त्रुटि है जिसे मैं देख रहा हूं। मैं केवल त्रुटि को पुन: उत्पन्न करना चाहता हूं ताकि मैं इसे ठीक कर सकूं। – jcalloway

+0

यह देखने के लिए जांचें कि क्या (1) आपके पास पर्यावरण परिवर्तक AWS_DEFAULT_REGION कुछ भी सेट नहीं है और/या (2) ~/.aws/config ने क्षेत्र को कुछ भी सेट नहीं किया है। – stdunbar

उत्तर

8

मैं इस त्रुटि को पुन: उत्पन्न करने में सक्षम था। ऐसा तब होता है जब आपका AmazonS3Client एक अलग क्षेत्र पर सेट होता है, फिर आप जिस बाल्टी को कॉल कर रहे हैं।

def s3Client = new AmazonS3Client(new BasicAWSCredentials("accessKey", "secretKey")) 
s3Client.setRegion(com.amazonaws.regions.Region.getRegion(Regions.AP_NORTHEAST_1)) 
def policy = s3Client.getBucketPolicy('joshuacalloway-us-east-1-bucket') 
println policy 

-

Result: com.amazonaws.services.s3.model.AmazonS3Exception: The bucket is in this region: null. Please use this region to retry the request (Service: Amazon S3; Status Code: 301; Error Code: PermanentRedirect; Request ID: 5F941FB57305BDEC), S3 Extended Request ID: xajT6YydJU+EfoOFWtD4SFiaxS7zoOUS9OKAmFVq/CECmoNuCbcDu4q7z4L+kztbyrMxb5c/Bcw= 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1543) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1181) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:962) 
3

नहीं, तुम नहीं कर सकते हैं - एक बाल्टी एक मौजूदा क्षेत्र में बनाया जाने वाला, इस जानकारी का उपयोग भी कैसे आप अपने बाल्टी से वस्तुओं को पुनः प्राप्त है

http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html

जब आप एक बाल्टी बनाएं, आप एक नाम और एडब्ल्यूएस क्षेत्र प्रदान करते हैं जहां आप बाल्टी बनाना चाहते हैं

यदि आप कोई क्षेत्र निर्दिष्ट नहीं करते हैं, अमेज़ॅन एस 3 यूएस ईस्ट में बाल्टी बनाता है (एन। वर्जीनिया) क्षेत्र।

आप Cross-Region Replication आप अपने बाल्टी स्वचालित रूप से विभिन्न क्षेत्र

+0

पर एक बग रिपोर्ट पर वारंट करता है, मुझे लगता है कि यह एक बाल्टी हो सकती है जो बहुत समय पहले बनाई गई थी, जब एडब्ल्यूएस ने किसी व्यक्ति को बनाने की अनुमति दी थी कोई क्षेत्र नहीं है – jcalloway

+0

@jcalloway मैंने आज एक बाल्टी बनाई और उसने क्षेत्र के लिए नहीं पूछा। इसके अलावा जब मैंने एस 3 कंसोल ड्रॉप-डाउन मेनू से किसी क्षेत्र का चयन करने का प्रयास किया, तो यह कहता है "एस 3 को क्षेत्र चयन की आवश्यकता नहीं है"। – Prashant

+0

@ प्रिशेंट जब आप बाल्टी बनाते हैं तो यह आपको क्षेत्र के लिए पूछता है, यदि आप कंसोल जाते हैं, तो आपके पास उपलब्ध क्षेत्र के साथ एक ड्रॉपडाउन है, यदि आप सीएलआई से करते हैं तो आपके पास अपनी प्रोफ़ाइल में परिभाषित क्षेत्र है और आपको ** ** बाल्टी बनाने के दौरान क्षेत्र को सीएलआई में पास करें –

1

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

"Resource": [ 
    "arn:aws:s3:::mybuckt", 
    "arn:aws:s3:::mybuckt/*" 
] 

एक बार मैंने इसे सही करने के बाद, समस्या हल हो गई।

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