Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用AWS SDK for Java 2创建一个预先签名的URL来访问阿里云/阿里云OSS bucket内容?_Java_Amazon Web Services_Amazon S3 - Fatal编程技术网

是否可以使用AWS SDK for Java 2创建一个预先签名的URL来访问阿里云/阿里云OSS bucket内容?

是否可以使用AWS SDK for Java 2创建一个预先签名的URL来访问阿里云/阿里云OSS bucket内容?,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我正在尝试使用AWSSDKforJava2API访问S3。我得到了它的大部分工作,除了预先设计的网址 根据,看起来有一个不同的查询参数要构建。看起来我必须使用他们的库,并且有一个开关作为的附加组件或重新实现部分。显然,您可以使用AWS的库来实现这一点。您必须确保预签名器还设置了endpointOverride配置。这是我的代码,我已经注释了相关的地方 @配置 @Slf4j 公共类S3ClientConfiguration{ //指定覆盖 @值(${aws.s3.portfolio.endpoin

我正在尝试使用AWSSDKforJava2API访问S3。我得到了它的大部分工作,除了预先设计的网址


根据,看起来有一个不同的查询参数要构建。看起来我必须使用他们的库,并且有一个开关作为的附加组件或重新实现部分。

显然,您可以使用AWS的库来实现这一点。您必须确保预签名器还设置了
endpointOverride
配置。这是我的代码,我已经注释了相关的地方

@配置
@Slf4j
公共类S3ClientConfiguration{
//指定覆盖
@值(${aws.s3.portfolio.endpoint:#{null}}”)
私有URI端点覆盖;
@豆子
@ConditionalOnProperty(prefix=“aws.s3”,name=“enabled”,matchIfMissing=true)
公共S3AsyncClient amazonS3AsyncClient(
最终AwsCredentialsProvider Credentials提供者,
最终AWS区域提供程序区域提供程序,
最终客户端Override配置客户端Override配置){
最终S3AsyncClientBuilder=S3AsyncClient.builder()
.credentialsProvider(credentialsProvider)
.覆盖配置(客户端覆盖配置)
.region(regionProvider.getRegion());
//指定覆盖
如果(endpointOverride!=null){
endpointOverride(endpointOverride);
}
返回生成器
.build();
}
@豆子
@ConditionalOnProperty(prefix=“aws.s3”,name=“enabled”,matchIfMissing=true)
公共S3客户端amazonS3Client(
最终AwsCredentialsProvider Credentials提供者,
最终AWS区域提供程序区域提供程序,
最终客户端Override配置客户端Override配置){
最终S3ClientBuilder=S3Client.builder()
.credentialsProvider(credentialsProvider)
.覆盖配置(客户端覆盖配置)
.region(regionProvider.getRegion());
//指定覆盖
如果(endpointOverride!=null){
endpointOverride(endpointOverride);
}
返回生成器
.build();
}
@豆子
公共客户端OverrideConfiguration客户端OverrideConfiguration(最终HttpTracing HttpTracing){
final var awsSdkTracing=awsSdkTracing.create(httpTracing);
return ClientOverrideConfiguration.builder()
.addExecutionInterceptor(awsSdkTracing.executionInterceptor())
.build();
}
@豆子
@ConditionalOnProperty(prefix=“aws.s3”,name=“enabled”,matchIfMissing=true)
公共AwsCredentialsProvider凭证提供程序(){
返回DefaultCredentialsProvider.create();
}
@豆子
@ConditionalOnProperty(prefix=“aws.s3”,name=“enabled”,matchIfMissing=true)
公众预签名人预签名人(
最终AwsCredentialsProvider Credentials提供者,
最终AWS地区供应商(地区供应商){
最终var builder=S3Presigner.builder()
.credentialsProvider(credentialsProvider)
.region(regionProvider.getRegion());
//指定覆盖
如果(endpointOverride!=null){
endpointOverride(endpointOverride);
}
返回生成器
.build();
}
@豆子
@ConditionalOnProperty(prefix=“aws.s3”,name=“enabled”,matchIfMissing=true)
公共AwsRegionProvider区域提供程序(){
返回DefaultAwsRegionProviderChain.builder().build();
}
}

看起来你回答了自己的问题。使用阿里巴巴图书馆。