SpringBoot整合aws的方法是什么
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"SpringBoot整合aws的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringBoot整合aws的方法是什么
千家信息网最后更新 2026年11月04日SpringBoot整合aws的方法是什么
这篇文章主要讲解了"SpringBoot整合aws的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"SpringBoot整合aws的方法是什么"吧!
引入依赖
software.amazon.awssdk s3 com.amazonaws aws-java-sdk-s3 com.amazonaws aws-java-sdk-sqs software.amazon.awssdk sns com.amazonaws aws-java-sdk-cloudfront
创建client
private S3Client createClient() { AwsCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(AwsBasicCredentials.create(minIoAccessKey, minIoSecretKey)); S3Client s3 = S3Client.builder() .region(Region.CN_NORTHWEST_1) .credentialsProvider(credentialsProvider) .endpointOverride(URI.create(minIoUrl)) .build(); return s3; }aws工具类
public class MinioOperate { private String minIoAccessKey; private String minIoSecretKey; private String minIoUrl; public MinioOperate() { } public MinioOperate(String minIoAccessKey, String minIoSecretKey, String minIoUrl) { this.minIoAccessKey = minIoAccessKey; this.minIoSecretKey = minIoSecretKey; this.minIoUrl = minIoUrl; }#创建aws的客户端 private S3Client createClient() { AwsCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(AwsBasicCredentials.create(minIoAccessKey, minIoSecretKey)); S3Client s3 = S3Client.builder() .region(Region.CN_NORTHWEST_1) .credentialsProvider(credentialsProvider) .endpointOverride(URI.create(minIoUrl)) .build(); return s3; }// public String generatePresignedUrl(String bucketName, String objectKey, String acl) {// URL url = null;// try {// AWSStaticCredentialsProvider credentialsProvider =// new AWSStaticCredentialsProvider(// new BasicAWSCredentials(minIoAccessKey, minIoSecretKey));//// AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard();// builder.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(minIoUrl, Regions.CN_NORTHWEST_1.getName()));//// AmazonS3 s3Client = builder// .withPathStyleAccessEnabled(true)// .withCredentials(credentialsProvider)// .build();//// // Set the presigned URL to expire after one hour.// Date expiration = new Date();// long expTimeMillis = expiration.getTime();// expTimeMillis += 1000 * 60 * 60 * 4;// expiration.setTime(expTimeMillis);//// // Generate the presigned URL.// GeneratePresignedUrlRequest generatePresignedUrlRequest =// new GeneratePresignedUrlRequest(bucketName, objectKey)// .withMethod(HttpMethod.GET)// .withExpiration(expiration);//// // set acl// if (!StringUtils.isEmpty(acl)) {// generatePresignedUrlRequest.withMethod(HttpMethod.PUT);// generatePresignedUrlRequest.addRequestParameter(Headers.S3_CANNED_ACL, acl);// }//// url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);//// } catch (AmazonServiceException e) {// // The call was transmitted successfully, but Amazon S3 couldn't process// // it, so it returned an error response.// e.printStackTrace();// } catch (SdkClientException e) {// // Amazon S3 couldn't be contacted for a response, or the client// // couldn't parse the response from Amazon S3.// e.printStackTrace();// }//// if (StringUtils.isEmpty(url)) {// return null;// }// return url.toString();// } #获取所有的对象(根据桶和前缀) public List ListObjects(String bucket, String prefix) { S3Client s3Client = this.createClient(); List contents = null; try { ListObjectsV2Request request = ListObjectsV2Request.builder().bucket(bucket).prefix(prefix).build(); ListObjectsV2Response listObjectsV2Response = s3Client.listObjectsV2(request); contents = listObjectsV2Response.contents(); } finally { this.closeClient(s3Client); } return contents; } #上传对象 public void putObject(String bucket, String key, String content) { S3Client s3Client = this.createClient(); try { ByteBuffer byteBuffer = ByteBuffer.wrap(content.getBytes(StandardCharsets.UTF_8)); PutObjectResponse putObjectResponse = s3.putObject(PutObjectRequest.builder().bucket(bucket).key(key) .build(), RequestBody.fromByteBuffer(byteBuffer)); } finally { this.closeClient(s3); } }#上传文件 public void putFile(String filePath, String key, String bucket) { S3Client s3Client = this.createClient(); File tempFile = new File(filePath); try { PutObjectResponse putObjectResponse = s3Client.putObject(PutObjectRequest.builder().bucket(bucket).key(key) .build(), RequestBody.fromFile(tempFile)); } catch (Exception e) { e.printStackTrace(); } finally { this.closeClient(s3Client); } }#获取对象大小 @Override public long getS3ObjectLength(String bucket, String key) { S3Client s3Client = this.createClient(); long size = 0; try { List s3Objects = this.ListObjects(s3, bucket, key); size = s3Objects.get(0).size(); }catch (Exception e){ e.printStackTrace(); }finally { this.closeClient(s3); } return size; } # 获取对象 public String getObject(String bucket, String key) { S3Client s3Client = this.createClient(); try { ResponseBytes responseResponseBytes = s3.getObject(GetObjectRequest.builder().bucket(bucket).key(key).build(), ResponseTransformer.toBytes()); # ResponseTransformer.toBytes() 将响应转换为二进制流 return this.decode(responseResponseBytes.asByteBuffer()); } finally { this.closeClient(s3); } }# 获取对象的流 @Override public InputStream getInputStream(String bucket, String key) { S3Client s3Client = this.createClient(); try { ResponseBytes responseResponseBytes = s3.getObject(GetObjectRequest.builder().bucket(bucket).key(key).build(), ResponseTransformer.toBytes()); return responseResponseBytes.asInputStream(); } finally { this.closeClient(s3); } }#删除对象 public void deleteObject(String bucket, String key) { S3Client s3Client = this.createClient(); try { DeleteObjectRequest deleteObjectRequest = DeleteObjectRequest.builder().bucket(bucket).key(key).build(); DeleteObjectResponse deleteObjectResponse = s3.deleteObject(deleteObjectRequest); } catch (Exception e) { e.printStackTrace(); } finally { this.closeClient(s3); } }#批量删除对象 public void deleteObjects(List buckets, String key) { S3Client s3Client = this.createClient(); try { String prefix = key.substring(0, key.lastIndexOf(File.separator)); for (String bucket : buckets) { ListObjectsRequest listObjectsRequest = ListObjectsRequest.builder().bucket(bucket).prefix(prefix).build(); ListObjectsResponse listObjectsResponse = s3.listObjects(listObjectsRequest); List contents = listObjectsResponse.contents(); for (S3Object content : contents) { String objectKey = content.key(); this.deleteObject(s3, bucket, objectKey); } this.deleteObject(s3, bucket, prefix); } } finally { this.closeClient(s3); } }} public String decode(ByteBuffer byteBuffer) { Charset charset = StandardCharsets.UTF_8; return charset.decode(byteBuffer).toString(); } 其中 minIoAccessKey,minIoSecretKey, minIoUrl;分别对应账号、密码、请求地址。需要对应自己的相关信息。
感谢各位的阅读,以上就是"SpringBoot整合aws的方法是什么"的内容了,经过本文的学习后,相信大家对SpringBoot整合aws的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
对象
方法
整合
学习
内容
二进制
信息
前缀
地址
大小
客户
客户端
密码
就是
工具
思路
情况
文件
文章
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技有限公司
互联网黑科技
百单网互联网科技有限公司怎么样
上海卓越科技互联网
中国互联网科技工作委员会毛军
科技互联网龙头
智能科技公司是互联网公司吗
互联网科技的发展
互联网 卓越科技
九亚互联网科技
易通互联网络科技有限公司
唐信互联网科技 大连
北京三清互联网科技
广州优美互联网科技
阿里巴巴算科技企业还是互联网
互联网与医疗科技
互联网科技产业特征
高科技互联网套路
北京品多多互联网科技有限公司
上海互联网科技园景观
深圳恒合互联网络科技有限公司
平安科技 互联网
互联网科技创新服务
佳云科技和互联网广告
厦门比较好的科技互联网公司
苏州五指互联网络科技有限
民营互联网公司国防科技
广州有谷有贝互联网科技有限公司
互联网公司属于科技吗
六子台科技互联网展会