日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java aws s3_java操作AWS S3一些坑记录

發(fā)布時(shí)間:2024/2/28 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java aws s3_java操作AWS S3一些坑记录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1,aws sdk jar版本不一致問題

一開始我在pom.xml中只配置了如下aws-java-sdk-s3

com.amazonaws

aws-java-sdk-s3

1.11.506

然后eclipse工程中如下截圖,可以看到這3個(gè)jar版本不一致

然后我直接執(zhí)行下面的代碼put 字符串和上傳文件

1 packagecom.hp.nova.common.tasksync.awss3;2

3 importjava.io.File;4 importjava.io.IOException;5

6 importcom.amazonaws.AmazonServiceException;7 importcom.amazonaws.SdkClientException;8 importcom.amazonaws.auth.AWSCredentials;9 importcom.amazonaws.auth.AWSStaticCredentialsProvider;10 importcom.amazonaws.auth.BasicAWSCredentials;11 importcom.amazonaws.auth.profile.ProfileCredentialsProvider;12 importcom.amazonaws.services.s3.AmazonS3;13 importcom.amazonaws.services.s3.AmazonS3ClientBuilder;14 importcom.amazonaws.services.s3.model.ObjectMetadata;15 importcom.amazonaws.services.s3.model.PutObjectRequest;16

17 public classUploadObject {18

19 public static void main(String[] args) throwsIOException {20 String clientRegion = "cn-northwest-1";21 String bucketName = "nova-test";22 String stringObjKeyName = "novatestkey";23 String fileObjKeyName = "test.txt";24 String fileName = "C:/nova_work_document/test.txt";25

26 try{27 AWSCredentials awsCredentials = new BasicAWSCredentials("Access key ID", "Secret access key");28 AmazonS3 s3Client =AmazonS3ClientBuilder.standard()29 .withRegion(clientRegion)30 .withCredentials(newAWSStaticCredentialsProvider(awsCredentials))31 .build();32

33 //Upload a text string as a new object.

34 s3Client.putObject(bucketName, stringObjKeyName, "Uploaded String Object");35

36 //Upload a file as a new object with ContentType and title specified.

37 PutObjectRequest request = new PutObjectRequest(bucketName, fileObjKeyName, newFile(fileName));38 ObjectMetadata metadata = newObjectMetadata();39 metadata.setContentType("plain/text");40 metadata.addUserMetadata("x-amz-meta-title", "someTitle");41 request.setMetadata(metadata);42 s3Client.putObject(request);43 }44 catch(AmazonServiceException e) {45 //The call was transmitted successfully, but Amazon S3 couldn't process46 //it, so it returned an error response.

47 e.printStackTrace();48 }49 catch(SdkClientException e) {50 //Amazon S3 couldn't be contacted for a response, or the client51 //couldn't parse the response from Amazon S3.

52 e.printStackTrace();53 }54 }55 }

就會(huì)報(bào)錯(cuò)如下

Exception in thread "main" java.lang.NoSuchFieldError: SIGNING_REGION

at com.amazonaws.services.s3.AmazonS3Client.createRequest(AmazonS3Client.java:4654)

at com.amazonaws.services.s3.AmazonS3Client.createRequest(AmazonS3Client.java:4630)

at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1706)

at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:3819)

at com.hp.nova.common.tasksync.awss3.UploadObject111.main(UploadObject111.java:34)

解決方法:

在pom.xml中把如下都配置上

com.amazonaws

aws-java-sdk-s3

1.11.506

com.amazonaws

aws-java-sdk-kms

1.11.506

com.amazonaws

aws-java-sdk-core

1.11.506

com.amazonaws

jmespath-java

1.11.506

jar包的情況如下圖

然后執(zhí)行就可以成功了

總結(jié)

以上是生活随笔為你收集整理的java aws s3_java操作AWS S3一些坑记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。