Amazon s3 AWS java SDK手动设置签名版本
我正在尝试访问AWS S3上的blob存储服务。它支持AWS SDK及其签名版本2 我正在使用访问此服务 是否可以手动设置AWS SDK发出的请求的签名版本? 据 AWS目前支持两个签名版本:签名版本2和签名版本4,本节将介绍这两个版本。大多数服务支持版本4,如果服务支持版本4,我们强烈建议您使用该版本。Amazon s3 AWS java SDK手动设置签名版本,amazon-s3,aws-sdk,Amazon S3,Aws Sdk,我正在尝试访问AWS S3上的blob存储服务。它支持AWS SDK及其签名版本2 我正在使用访问此服务 是否可以手动设置AWS SDK发出的请求的签名版本? 据 AWS目前支持两个签名版本:签名版本2和签名版本4,本节将介绍这两个版本。大多数服务支持版本4,如果服务支持版本4,我们强烈建议您使用该版本。 我找不到如何手动将签名版本设置为2或4。来自S3开发者指南-: Java SDK 在代码中添加以下内容 System.setProperty(SDKGlobalConfiguration.EN
我找不到如何手动将签名版本设置为2或4。来自S3开发者指南-: Java SDK 在代码中添加以下内容
System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_System_属性,“true”)代码>
或者,在命令行上指定以下内容
-Dcom.amazonaws.services.s3.enableV4
看起来v2以前是AWS SDK中的默认版本,但v4现在是从中开始的默认版本。
aws-java-sdk-core-1.11.163
SDKGlobalConfiguration.ENABLE\u S3\u SIGV4\u SYSTEM\u属性已弃用。
我使用下面的代码调用了signature\u version='s3'
private static ClientConfiguration config = new ClientConfiguration();
static {
config.setProtocol(Protocol.HTTP);
config.setSignerOverride("S3SignerType");
}
private static AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withClientConfiguration(config)
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("endpoint", null))
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("access_key_id", "secret_Key")))
.build();
任何人在aws java sdk 1.7.4、hadoop aws 2.7.5中使用Spark 2.4.4,即使在正确设置区域后仍出现400个错误,那么这就是适合我的解决方案,谢谢^_^