Vya*_*pal 3 java amazon-s3 amazon-web-services
我正在创建一个想要将文件上传到S3存储桶的应用程序.我从以下代码段收到错误:
BasicAWSCredentials awsCreds = new BasicAWSCredentials("<myKey>", "<mySecretId>");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion("<myRegion>")
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
PutObjectRequest request = new PutObjectRequest("testbucketupdate", "testFile", new File("D:\\Attachments\\LICENSE"));
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("plain/text");
metadata.addUserMetadata("x-amz-meta-title", "someTitle");
request.setMetadata(metadata);
s3Client.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).disableChunkedEncoding().build());
s3Client.putObject(request);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Java.lang.UnsupportedOperationException: Client is immutable when created with the builder.
at com.amazonaws.AmazonWebServiceClient.checkMutability(AmazonWebServiceClient.java:937)
at com.amazonaws.services.s3.AmazonS3Client.setS3ClientOptions(AmazonS3Client.java:716)
at com.amazonaws.lambda.demo.LambdaFunctionHandler.check(LambdaFunctionHandler.java:123)
at com.amazonaws.lambda.demo.LambdaFunctionHandler.main(LambdaFunctionHandler.java:208)
at com.amazonaws.lambda.demo.LambdaFunctionHandler.handleRequest(LambdaFunctionHandler.java:51)
at com.amazonaws.lambda.demo.LambdaFunctionHandler.handleRequest(LambdaFunctionHandler.java:1)
at lambdainternal.EventHandlerLoader$PojoHandlerAsStreamHandler.handleRequest(EventHandlerLoader.java:178)
at lambdainternal.EventHandlerLoader$2.call(EventHandlerLoader.java:888)
at lambdainternal.AWSLambda.startRuntime(AWSLambda.java:283)
at lambdainternal.AWSLambda.<clinit>(AWSLambda.java:64)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at lambdainternal.LambdaRTEntry.main(LambdaRTEntry.java:94)
Run Code Online (Sandbox Code Playgroud)
将文件成功上传到所需存储桶应该做哪些更改?
显然错误说如果你使用AmazonS3ClientBuilder构建客户端,它将是不可变的,你不能在它构建后修改它.
解决方案是稍后删除s3Client.setS3ClientOptions(...)并使用AmazonS3ClientBuilder构建器设置所需的选项.一些事情:
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion("<myRegion>")
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.enablePathStyleAccess()
.disableChunkedEncoding()
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |