springboot集成COS对象存储

1.申请腾讯云存储桶

新建密钥(后面配置要用到)

 2.编写工具类

此处使用工具类进行基本属性配置,也可选择在yml中配置

package com.sfy.util;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.region.Region;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.Random;


public class TencentCOSUploadFileUtil {
    // 存储桶名称
    private static final String BUCKET_NAME = "";
    //secretId 秘钥id
    private static final String SECRET_ID = "";
    //SecretKey 秘钥
    private static final String SECRET_KEY = "";
    // 腾讯云 自定义文件夹名称
    private static final String PREFIX = "";
    // 访问域名
    public static final String URL = "";
    // 创建COS 凭证
    private static final COSCredentials credentials = new BasicCOSCredentials(SECRET_ID,SECRET_KEY);
    // 配置 COS 区域 就购买时选择的区域 
    private static final ClientConfig clientConfig = new ClientConfig(new Region("ap-nanjing"));

    /**
     * @methodName uploadfile
     * @effect: 上传文件
     */
    public static String uploadfile(MultipartFile file){
        // 创建 COS 客户端连接
        COSClient cosClient = new COSClient(credentials,clientConfig);
        String fileName = file.getOriginalFilename();
        try {
            assert fileName != null;
            String substring = fileName.substring(fileName.lastIndexOf("."));
            File localFile = File.createTempFile(String.valueOf(System.currentTimeMillis()),substring);
            file.transferTo(localFile);
            Random random = new Random();
            fileName =PREFIX+random.nextInt(10000)+System.currentTimeMillis()+substring;
            // 将 文件上传至 COS
            PutObjectRequest objectRequest = new PutObjectRequest(BUCKET_NAME,fileName,localFile);
            cosClient.putObject(objectRequest);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            cosClient.shutdown();
        }
        return URL+fileName;
    }
}

3.controller层


import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;


@Controller
@RequestMapping("/uploadFile")
public class UploadFileController {

    @RequestMapping("upload")
    @ResponseBody
    public String upload(@RequestParam("file") MultipartFile file){
        if (null == file) {
            return "文件为空";
        }
        String filePath = TencentCOSUploadFileUtil.uploadfile(file);
        return "上传成功,访问地址为:"+filePath;
    }
}

 

相关推荐

  1. 对象存储SpringBoot集成华为云OBS对象存储

    2024-01-23 00:40:02       31 阅读
  2. Hadoop集成对象存储和HDFS磁盘文件存储

    2024-01-23 00:40:02       58 阅读
  3. vue、thinkphp实现腾讯云对象存储COS图片上传

    2024-01-23 00:40:02       44 阅读
  4. SpringBoot中实现阿里云OSS对象存储

    2024-01-23 00:40:02       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-23 00:40:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-23 00:40:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-23 00:40:02       82 阅读
  4. Python语言-面向对象

    2024-01-23 00:40:02       91 阅读

热门阅读

  1. C++ 类和对象 知识笔记

    2024-01-23 00:40:02       51 阅读
  2. 函数式编程

    2024-01-23 00:40:02       50 阅读
  3. 53.最大子数组和(前缀和、动态规划,C解法)

    2024-01-23 00:40:02       61 阅读
  4. 【算法详解】力扣415.字符串相加

    2024-01-23 00:40:02       74 阅读
  5. 读书笔记--学习人月神话的金句及感悟3

    2024-01-23 00:40:02       59 阅读
  6. gin数据解析和绑定

    2024-01-23 00:40:02       60 阅读