Springboot快速集成七牛云,只需要一个我定制过的工具类。

2021年9月27日 361点热度 0人点赞 0条评论

Springboot快速集成七牛云,只需要一个我定制过的工具类。插图
快速三步走:

第一步

在application.properties文件配置如下:

# 上传文件总的最大值
spring.servlet.multipart.max-request-size=20MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=2MB
qiniu.accessKey=这里填上你的七牛云
keyqiniu.accessSecretKey=这里填上你的七牛云key

第二步

直接复制粘贴下面定制好的工具类:这里有两个地方需要注意,给你标出来了。①和②



import com.alibaba.fastjson.JSON;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

@Component
public class QiniuUtils {
       //这里填你的域名,注意带s和不带s的区别
       public static final String url = "https://cdn.uuzkz.com/";

       @Value("${qiniu.accessKey}")
       private String accessKey;
       @Value("${qiniu.accessSecretKey}")
       private String accessSecretKey;

   public boolean upload(MultipartFile file,String fileName){

       //构造一个带指定 Region 对象的配置类
       Configuration cfg = new Configuration(Region.huanan());//①注意,这里填你的存储空间所在地区
       //...其他参数参考类注释
       UploadManager uploadManager = new UploadManager(cfg);
       //...生成上传凭证,然后准备上传
       String bucket = "mystore";//②注意,这里填你的存储空间名
       //默认不指定key的情况下,以文件内容的hash值作为文件名
   try {
         byte[] uploadBytes = file.getBytes();
         Auth auth = Auth.create(accessKey, accessSecretKey);
         String upToken = auth.uploadToken(bucket);
         Response response = uploadManager.put(uploadBytes, fileName, upToken);
         //解析上传成功的结果
         DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
         return true;
      } catch (Exception ex) {
         ex.printStackTrace();
      }
         return false;
   }
}
第三步

在自定义控制器Controller中使用:

    @RestController
    @RequestMapping("upload")
    public class UploadController {

        @Autowired
        private QiniuUtils qiniuUtils;

        @RequestMapping
        public Result upload(@RequestParam("image") MultipartFile file){
            //获取文件原名称
            String originalFilename = file.getOriginalFilename();
            //新文件名称
            String fileName = UUID.randomUUID().toString()+"."+ StringUtils.substringAfterLast(originalFilename,".");
            System.out.println("==========fileName:"+fileName);
            //调用工具类上传
            boolean upload = qiniuUtils.upload(file, fileName);
           if (upload){
               return Result.success(QiniuUtils.url+fileName);
            }
               return Result.fail(ErrorCode.UPLOAD_FAIL.getCode(),ErrorCode.UPLOAD_FAIL.getMsg());
        }
}

小小调酒师

此刻打盹,你将做梦; 此刻学习,你将圆梦。 个人邮箱:shellways@foxmail.com

文章评论