iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot整合aws的方法是什么
  • 146
分享到

SpringBoot整合aws的方法是什么

2023-06-21 22:06:12 146人浏览 泡泡鱼
摘要

这篇文章主要讲解了“SpringBoot整合aws的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springBoot整合aws的方法是什么”吧!引入依赖  &

这篇文章主要讲解了“SpringBoot整合aws的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springBoot整合aws的方法是什么”吧!

引入依赖

  <dependency>           <groupId>software.amazon.awssdk</groupId>           <artifactId>s3</artifactId>       </dependency>                <dependency>           <groupId>com.amazonaws</groupId>           <artifactId>aws-java-sdk-s3</artifactId>       </dependency>              <dependency>           <groupId>com.amazonaws</groupId>           <artifactId>aws-java-sdk-sqs</artifactId>       </dependency>              <dependency>           <groupId>software.amazon.awssdk</groupId>           <artifactId>sns</artifactId>       </dependency>              <dependency>           <groupId>com.amazonaws</groupId>           <artifactId>aws-java-sdk-cloudfront</artifactId>       </dependency>

创建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<S3Object> ListObjects(String bucket, String prefix) {   S3Client s3Client = this.createClient();    List<S3Object> 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<S3Object> 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<GetObjectResponse> 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<GetObjectResponse> 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<String> 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<S3Object> 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的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: SpringBoot整合aws的方法是什么

本文链接: https://www.lsjlt.com/news/301038.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot整合aws的方法是什么
    这篇文章主要讲解了“SpringBoot整合aws的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot整合aws的方法是什么”吧!引入依赖  &...
    99+
    2023-06-21
  • SpringBoot整合Jackson的方法是什么
    这篇文章主要介绍了SpringBoot整合Jackson的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Jackson的方法是什么文章都会有所收获,下面我们一起来看看吧。一、J...
    99+
    2023-07-05
  • SpringBoot整合Swagger的方法是什么
    本文小编为大家详细介绍“SpringBoot整合Swagger的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot整合Swagger的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-06
  • SpringBoot整合RocketMQ的方法是什么
    这篇文章主要介绍了SpringBoot整合RocketMQ的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合RocketMQ的方法是什么文章都会有所收获,下面我们一起来看看吧。1...
    99+
    2023-07-05
  • springboot整合mongodb的方法是什么
    这篇文章主要介绍“springboot整合mongodb的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot整合mongodb的方法是什么”文章能帮助大家解决问题。1.mo...
    99+
    2023-07-05
  • SpringBoot整合Lettuce redis的方法是什么
    这篇文章主要介绍了SpringBoot整合Lettuce redis的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Lettuce redis的方法是什么文章都会有所收获,下面...
    99+
    2023-07-06
  • springboot hutool整合email的方法是什么
    本篇内容主要讲解“springboot hutool整合email的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot hutool整合email的...
    99+
    2023-07-05
  • SpringBoot整合Thymeleaf视图的方法是什么
    这篇文章主要介绍了SpringBoot整合Thymeleaf视图的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Thymeleaf视图的方法是...
    99+
    2024-04-02
  • Java springboot整合Shiro框架的方法是什么
    本篇内容主要讲解“Java springboot整合Shiro框架的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java springboot整合Shiro框架的...
    99+
    2023-06-26
  • java SpringBoot项目整合Redis的方法是什么
    这篇文章主要介绍了java SpringBoot项目整合Redis的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java SpringBoot项目整合Redis的方法是什么文章都会有所收获,下面我们...
    99+
    2023-07-05
  • Java SpringBoot整合JSP和MyBatis的方法是什么
    这篇文章主要介绍“Java SpringBoot整合JSP和MyBatis的方法是什么”,在日常操作中,相信很多人在Java SpringBoot整合JSP和MyBatis的方法是什么问题上存在疑惑,小编查阅了各式资料,...
    99+
    2023-07-05
  • SpringBoot整合aws的示例代码
    业务需求 将本地的一些文件保存到aws上 引入依赖 创建client 工具类 引入依赖 <dependency> ...
    99+
    2024-04-02
  • SpringBoot整合消息队列RabbitMQ的方法是什么
    本篇内容介绍了“SpringBoot整合消息队列RabbitMQ的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介在Spring...
    99+
    2023-07-05
  • ElasticSearch整合SpringBoot搭建配置的方法是什么
    本文小编为大家详细介绍“ElasticSearch整合SpringBoot搭建配置的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“ElasticSearch整合SpringBoot搭建配置的方法是什么”文章能帮助大家解决疑惑,下...
    99+
    2023-07-05
  • SpringBoot整合Quartz及异步调用的方法是什么
    这篇文章主要介绍“SpringBoot整合Quartz及异步调用的方法是什么”,在日常操作中,相信很多人在SpringBoot整合Quartz及异步调用的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-07-05
  • Java Springboot整合支付宝接口的方法是什么
    本篇内容主要讲解“Java Springboot整合支付宝接口的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Springboot整合支付宝接口的方法是什...
    99+
    2023-07-05
  • springboot整合druid及配置依赖的方法是什么
    本篇内容主要讲解“springboot整合druid及配置依赖的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot整合druid及配置依赖的方法是什么”吧!Druid简...
    99+
    2023-06-22
  • SpringBoot整合Thymeleaf的方法
    目录1. 问题需求分析2. 什么是静态化?3. 如何实现静态化?4. Thymeleaf实现静态化4.1 概念介绍三个参数:4.2 具体实现5. nginx 中进行访问配置6. 访问...
    99+
    2024-04-02
  • SpringBoot整合tkMapper的方法
    SpringBoot整合tkMapper 项目使用SpringBoot2.0,H2数据库,使用了 Lombok 简化代码;本人是刚入门的菜鸟,下面是本人使用SpringBoot整合t...
    99+
    2022-11-13
    SpringBoot整合tkMapper SpringBoot tkMapper SpringBoot tkMapper使用
  • springboot整合quartz定时任务框架的方法是什么
    今天小编给大家分享一下springboot整合quartz定时任务框架的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作