2016-08-30 22 views
5

Widzę błąd stosu Java, który sugeruje, że istnieje segment S3 z pustym regionem.jest możliwe utworzenie łyżki AWS s3 z obszarem pustym

Czy to możliwe? Próbowałem odtworzyć błąd i lukę s3 z pustym regionem, bez powodzenia.

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

Dlaczego chcesz to zrobić? Jeśli nie interesuje Cię region, użyj createBucket ("bucketName") lub createBucket ("bucketName", Region.US_Standard). Dlaczego chcesz przekazać wartość null? – stdunbar

+0

To błąd, który widzę. Chcę tylko odtworzyć błąd, aby go naprawić. – jcalloway

+0

Sprawdź, czy (1) masz zmienną środowiskową AWS_DEFAULT_REGION ustawioną na nic i/lub (2) ~/.aws/config ma region ustawiony na zero. – stdunbar

Odpowiedz

8

Udało mi się odtworzyć ten błąd. Występuje, gdy twój AmazonS3Client jest ustawiony na inny region niż wiadro, do którego dzwonisz.

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 

-> Wyniki w

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

Nie, nie możesz - wiadro musi być utworzony w ramach istniejącej regionie, korzystając z tych informacji jest również, w jaki sposób odzyskać obiekty z wiadra

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

kiedy utwórz wiadro, podaj nazwę i region AWS, w którym ma zostać utworzony pojemnik

Jeśli nie określisz regionu, Amazon S3 tworzy wiadro w amerykańskim East (N. Virginia) Region.

można włączyć Cross-Region Replication jeśli chcesz wiadro być automatycznie replikowane w innym regionie

+0

Zgaduję, że może to być wiadro, które zostało stworzone dawno temu, kiedy AWS pozwoliło osobie stworzyć wiadro bez regionu – jcalloway

+0

@jcalloway Stworzyłem dzisiaj wiadro i nie pytałem o region. Co więcej, gdy próbowałem wybrać region z menu rozwijanego konsoli S3, mówi "S3 nie wymaga wyboru regionu". – Prashant

+0

@Prashant podczas tworzenia wiadra prosi o region, jeśli przejdziesz do konsoli, masz rozwijane menu z dostępnym regionem, jeśli zrobisz to z CLI, albo masz region zdefiniowany w swoim profilu, jeszcze ** musisz ** przekazać region do CLI podczas tworzenia segmentu –

1

To jest mylące błąd. Stawiłem też czoła temu problemowi, ale zidentyfikowałem go jako Politykę, która popełniła błąd w pisowni pod nazwą wiadra. na przykład zamiast mybucket wspomniałem o mybuckt.

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

Po poprawieniu problemu problem został rozwiązany.

Powiązane problemy