web-dev-qa-db-ja.com

AWS Java SDK-AWS認証には有効なDateまたはx-amz-dateヘッダーが必要です

AWS SDKをJavaおよびJava 1.8u60 +。

com.amazonaws.services.s3.model.AmazonS3Exception: AWS authentication requires a valid Date or x-amz-date header (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 41C359C079CBAFCF)
    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.Java:1182) ~[aws-Java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.Java:770) ~[aws-Java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.Java:489) ~[aws-Java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.Java:310) ~[aws-Java-sdk-core-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.Java:3608) ~[aws-Java-sdk-s3-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.Java:3561) ~[aws-Java-sdk-s3-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.Java:647) ~[aws-Java-sdk-s3-1.10.10.jar:na]
    at com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.Java:632) ~[aws-Java-sdk-s3-1.10.10.jar:na]
49
Andrew Shore

これは、JodaTimeとJava 1.8u60以降のバージョン)間のバグが原因です。JodaTimeバージョン2.8.1以降にアップグレードすると問題が解決します。以下のGithubの問題を参照してください。

https://github.com/aws/aws-sdk-Java/issues/484https://github.com/aws/aws-sdk-Java/issues/444

87
Andrew Shore

私の知る限り、この問題には3つの解決策があります。

  • joda Timeのアップグレード
  • aWSのアップグレードJava SDK
  • downgrade Java 1.8u60未満のバージョンに(Java7は正常に動作するようです)
5
mooreds

AWSをJava SDKを1.10.1以降に更新します

4
Rhythm

プレストを使用しながら直面しました。問題はJavaバージョンjdk1.8.0_60をjdk1.8.0_45にダウングレードすると問題が解決します

2
Avinash Singh

私は同じ問題に直面しています。私は今解決しています。唯一のことは、Java 1.8u60 +はaws sdk 1.10.10をサポートしていないので、aws sdkバージョン1.11.52を更新することができます..i最新バージョンで解決しました。

また、バージョンをアップグレードするときに、依存関係ツリーの競合に注意してください。私の場合、aws SDKバージョンをアップグレードした後、httpclientとの競合がありました。

1
Vipul Kacha