首页 > 其他分享 >学习笔记:springBoot整合七牛云

学习笔记:springBoot整合七牛云

时间:2022-09-30 13:22:05浏览次数:52  
标签:七牛云 springBoot qiniu 笔记 new import com String

在项目开发的过程中,文件存储是一大问题,本人遇到的情况是服务器的操作系统从原来的Linux变成了windowServer,但是,自己写的文件上传具有SFTP功能,服务器对于一些路径出现了乱码的现象,所以本人选择采用七牛云解决文件上传和存储的问题。

前期需要自己去申请七牛云账号,创建存储空间,这里不会去详细说。

下面就是把七牛云通过springBoot整合到项目了。

1、导入七牛云相关依赖。

<dependency>
            <groupId>com.qiniu</groupId>
            <artifactId>qiniu-java-sdk</artifactId>
            <version>[7.7.0, 7.7.99]</version>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.5</version>
        </dependency>

2、创建七牛云工具类。

 1 package com.zhkt.ott.fore_see.utils;
 2 
 3 import com.qiniu.storage.Configuration;
 4 import com.qiniu.storage.Region;
 5 import com.qiniu.storage.UploadManager;
 6 import com.qiniu.util.Auth;
 7 import org.springframework.stereotype.Component;
 8 import org.springframework.web.multipart.MultipartFile;
 9 
10 import java.io.IOException;
11 import java.text.SimpleDateFormat;
12 import java.util.*;
13 
14 /**
15  * 图片上传配置类
16  *
17  */
18 public class ImageUtil {
19 
20 
21     private static String accessKey = "6u_hQ6yzucJo9CS11ciQhFK1tzxdSv9P9_fzdY0Q";      //公钥
22     private static String accessSecretKey = "KjdxCJfpDfxFED4lMxalelukIbqmkbcyL6yXu2sf";   //私钥
23     private static String bucket = "zhihuiketangforesee";   // 存储空间
24     private static String url = "http://rj0bgk3bt.hd-bkt.clouddn.com/";
25 
26     /**
27      * 处理多文件
28      * @param multipartFiles
29      * @return
30      */
31     public static Map<String, List<String>> uploadImages(MultipartFile[] multipartFiles){
32         Map<String, List<String>> map = new HashMap<>();
33         List<String> imageUrls = new ArrayList<>();
34         for(MultipartFile file : multipartFiles){
35             imageUrls.add(uploadImageQiniu(file));
36         }
37         map.put("imageUrl",imageUrls);
38         return map;
39     }
40 
41     /**
42      * 上传图片到七牛云
43      * @param multipartFile
44      * @return
45      */
46     private static String uploadImageQiniu(MultipartFile multipartFile){
47         try {
48             //1、获取文件上传的流
49             byte[] fileBytes = multipartFile.getBytes();
50             //2、创建日期目录分隔
51             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
52             String datePath = dateFormat.format(new Date());
53 
54             //3、获取文件名
55             String originalFilename = multipartFile.getOriginalFilename();
56             String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
57             // String filename = datePath+"/"+ UUID.randomUUID().toString().replace("-", "")+ suffix;
58 
59             //4.构造一个带指定 Region 对象的配置类
60             //Region.南(根据自己的对象空间的地址选
61             Configuration cfg = new Configuration(Region.huanan());
62             UploadManager uploadManager = new UploadManager(cfg);
63 
64             //5.获取七牛云提供的 token
65             Auth auth = Auth.create(accessKey, accessSecretKey);
66             String upToken = auth.uploadToken(bucket);
67             uploadManager.put(fileBytes,originalFilename,upToken);
68 
69             return url+originalFilename;
70         } catch (IOException e) {
71             e.printStackTrace();
72         }
73         return null;
74     }
75 }

至此七牛云就整合到项目了,下面只需要写一个接口测试下即可。

标签:七牛云,springBoot,qiniu,笔记,new,import,com,String
From: https://www.cnblogs.com/qiyutianxia/p/16744603.html

相关文章

  • 代码大全2 阅读笔记01
    第七章:高质量的子程序1、为什么要创建子程序?      提高程序的可读性,减少以及隔离程序复杂度,提高代码复用率,在代码变更时减少带来的影响(功能变更,变更导致的测试),可......
  • 程序员修炼之道+从小工到专家阅读笔记01
    作者在第一章讲述了注重实效应有的思想,如何成为一个注重实效的程序员。注重实效的程序员会有考虑大局的思想,他们谦虚敢于承认错误,敢于负责任。作者用一句“我的源码让猫给......
  • 程序员修炼之道:从小工到专家读书笔记
    注重实效的哲学   注重实效的程序员对他的职业生涯负责,并且不害怕承认无知或错误,如果你确实同意要为某个结果负责,你就应切实负起责任。当你犯错误、或者判断失误时,诚实......
  • SpringBoot集成Dubbo案例
    SpringBoot集成Dubbo:Case​​1、什么是Duubo?​​​​2、概念架构​​​​2.1提供者​​​​2.2消费者​​​​2.3注册中心​​​​3、SpringBoot集成Dubbo步骤​​​​:o......
  • 【尚硅谷】Vue2.x组件化编码学习笔记--渐进式的JS框架
    Vue组件化编码​​一、使用Vue-cli创建项目​​​​1.1说明​​​​1.2创建Vue项目​​​​1.2.1如何修改端口以及自动运行​​​​1.3Vue-cli创建的项目的目录结构​​......
  • SpringBoot文件上传深入浅出
    前言文件上传原理浏览器发起HTTPPOST请求,指定请求头:Content-Type:multipart/form-dataContent-Type:指定了文件类型服务端解析请求内容,执行文件保存处理,返回成功消息。不......
  • 【Kubernetes】K8s笔记(四):从 Job 和 CronJob 看 Kubernetes 的设计理念
    0.前言:在线业务和离线业务Kubernetes的业务可以分为两大类:在线业务和离线业务。在线业务:像Nginx、MySQL这样长时间运行的业务,这些应用一旦运行起来,除非出错或者停......
  • SpringBoot之Mybatis开启SQL记录和Pagehelper
    配置mybatismybatis:#mapper路径mapper-locations:classpath:mapper/*.xmlconfiguration:#日志输出log-impl:org.apache.ibatis.logging.stdout.StdO......
  • SpringBoot2 不同版本中 文件上传大小配置
    由于springboot具有几个版本,不同版本对于文件上传最大限制的配置也有所不同。所以要注意springboot本身的版本,不然会一直报错#在springboot1.3版本中:multipart.maxFil......
  • 《程序员修炼之道:从小工到专家》阅读笔记2
    依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负责这样-种观念,是注重实效的哲学的一块基石。注重实效的程序员对他或她自己的职业生涯负责,并且不害怕承认无......