私はPlayフレームワーク2.5とaws-java-sdkバージョン1.11.12を使用しています。特定の地域のS3バケットを作成するように呼びかけており、わからないエラーが発生しています。それは、私がcreateBucket呼び出しに渡しているにもかかわらず、リージョンが間違っていて、私たちが西側2でなければならないことを私に伝えます。誰かが助けてくれますか?再生、アマゾンS3作成バケット呼び出し承認ヘッダーは正しく指定されたときに不正な形式の不正な領域です
@Inject
public AmazonS3ComponentImpl(Configuration configuration) {
String accessKey = configuration.getString(AWS_ACCESS_KEY);
String secretKey = configuration.getString(AWS_SECRET_KEY);
amazonS3Bucket = configuration.getString(AWS_S3_BUCKET);
if ((accessKey != null) && (secretKey != null)) {
AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
amazonS3 = new AmazonS3Client(awsCredentials);
try {
amazonS3.createBucket(amazonS3Bucket, Region.US_West_2);
} catch (AmazonS3Exception e) {
if (e.getErrorCode().compareTo("BucketAlreadyOwnedByYou") != 0
&& e.getErrorCode().compareTo("AccessDenied") != 0) {
throw e;
}
} finally {
Logger.info("Using bucket " + amazonS3Bucket);
}
}
}
エラー:
Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-west-2' (Service: Amazon S3; Status Code: 400; Error Code: AuthorizationHeaderMalformed; Request ID: 261B779D23D15F6F)
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.createBucket(AmazonS3Client.java:908)
at com.amazonaws.services.s3.AmazonS3Client.createBucket(AmazonS3Client.java:855)
at com.zently.modules.AmazonS3ComponentImpl.<init>(AmazonS3Component.java:42)
['amazonS3.setRegion'](http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-region-selection.html)を使用して、実際に使用されている領域を設定しましたかクライアントオブジェクト?エラーは、バケット属性ではなく、リクエストで送信された認可ヘッダーを参照します。デフォルトはus-east-1です。 –
トリックをしたおかげで@マイケルsqlbot。 –