AWS Java SDK - AWS 身份验证需要有效的 Date 或 x-amz-date 标头

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/32058431/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 19:34:14  来源:igfitidea点击:

AWS Java SDK - AWS authentication requires a valid Date or x-amz-date header

javaamazon-web-servicesamazon-s3jodatimeaws-sdk

提问by Andrew Shore

Getting the following exception when using the AWS SDK for Java and Java 1.8u60+.

使用适用于 Java 和 Java 1.8u60+ 的 AWS 开发工具包时出现以下异常。

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]

回答by Andrew Shore

This is caused by a bug between JodaTime and versions of Java greater then 1.8u60. Upgrading to JodaTime version 2.8.1 or later solves the issue. See the following Github issues for reference.

这是由 JodaTime 和高于 1.8u60 的 Java 版本之间的错误引起的。升级到 JodaTime 2.8.1 或更高版本可解决此问题。请参阅以下 Github 问题以供参考。

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

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

回答by mooreds

As far as I can see, there are three solutions to this issue:

据我所知,这个问题有三种解决方案:

  • upgrade joda time
  • upgrade the AWS java SDK
  • downgrade java to a version less than 1.8u60 (java7 seems to work fine)
  • 升级乔达时间
  • 升级 AWS Java SDK
  • 将 java 降级到低于 1.8u60 的版本(java7 似乎工作正常)

回答by Rhythm

Update your AWS Java SDK to 1.10.1 or later

将您的 AWS Java 开发工具包更新到 1.10.1 或更高版本

回答by Avinash Singh

I faced while using presto. The problem is with java version jdk1.8.0_60 greater downgrade it to jdk1.8.0_45 will solve the problem

我在使用 presto 时遇到了。问题是java版本jdk1.8.0_60更大,降级到jdk1.8.0_45就可以解决问题

回答by Vipul Kacha

i have faced same problem.i have solved now.only thing is that java 1.8u60+ does not support aws sdk 1.10.10 so you can just update aws sdk version 1.11.52 ..i mean latest version and it resolved it.

我遇到了同样的问题。我现在已经解决了。唯一的问题是 java 1.8u60+ 不支持 aws sdk 1.10.10,所以你可以只更新 aws sdk 版本 1.11.52 ..我的意思是最新版本,它解决了它。

Also please look out for the conflicts in the dependency tree, when you upgrade the versions. In my case there was a conflict with the httpclient after upgrading aws sdk version.

另外,当您升级版本时,请注意依赖关系树中的冲突。就我而言,升级 aws sdk 版本后与 httpclient 发生冲突。