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 秘钥idprivate 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;// 将 文件上传至 COSPutObjectRequest 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")@ResponseBodypublic String upload(@RequestParam("file") MultipartFile file){if (null == file) {return "文件为空";}String filePath = TencentCOSUploadFileUtil.uploadfile(file);return "上传成功,访问地址为:"+filePath;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/422342.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一位CSGO游戏搬砖人的自白

“阿阳,游戏搬砖这个项目是不是需要大量本金?需要花费大量的时间和精力?必须用到手机和电脑是吗?有没有只用一部手机一天花两三小时就能赚钱的项目推荐呢? 这是我最不喜欢听到的粉丝发来的聊天开场白。 反问一下自己…

免费在线压缩图片网站分享

支持批量压缩处理,但需要注意,网站仅仅支持体积为5MB的图片,压缩率高达66%,压缩完成后,点下Donwnload all,就能将图片保存至本地。 网页端直接进行图片压缩 https://tinify.cn/

热烈祝贺中玺汇集团《沃购拼》上市盛典圆满成功

鼓乐喧天,舞姿优美,一群用热情点燃生活的舞者拉开了上市盛典序幕。 《沃购拼》品牌应急生态平台,在科技与创新的驱动下,中玺汇集团在市场中崭露头角,今日我们迎来了一个历史性的时刻——中玺汇集团“沃购拼”品牌在香港…

基于线程池的TCP套接字通信

基于线程池的TCP套接字通信 还是只改变server.cpp 其中main函数, 也就是主线程中的处理流程: 创建监听的套接字绑定IP和端口设置监听创建线程池实例对象添加监听任务 acceptConn主线程退出 监听任务函数的处理流程如下: 阻塞等待并接受客户端连接检测有客户端连接时, 添加…

flutter3使用dio库发送FormData数据格式时候的坑,和get库冲突解决办法

问题描述 问题1:当你使用FormData.from(Flutter3直接不能用)的时候,可能会提示没有这个方法,或者使用FormData.fromMap(flutter3的dio支持)的时候也提示没有,这时候可能就是和get库里面的Formdata冲突了 问题1:The me…

【Linux】第三十二站:命名管道

文章目录 一、命名管道介绍二、编码1.mkfifo2.unlink3.一个简单的例子4.修改 一、命名管道介绍 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作…

​第14节-高质量简历写作求职通关-在线测试

在线测试主要包括性格测试、综合能力测试、技能测试三类 性格测试 性格测试主要用于考察个人与工岗位的匹配程度 考察内容包含性格、能力、动机、价值观等,考察形式一般为给出相应的工作场景,让你选择最喜欢或者最不喜欢的答案 技能考试 这类测试一般是针…

数学建模--PageRank算法的Python实现

文章目录 1. P a g e R a n k PageRank PageRank算法背景2. P a g e R a n k PageRank PageRank算法基础2.1. P a g e R a n k PageRank PageRank问题描述2.2.有向图模型2.3.随机游走模型 3. P a g e R a n k PageRank PageRank算法定义3.1. P a g e R a n k PageRank PageRank…

【spring】代码生成器

📝个人主页:五敷有你 🔥系列专栏:spring ⛺️稳中求进,晒太阳 代码生成器(本质IO流) 在mybatis的逆向工程生成model和mapper接口和xml文件后,还需要反复的写Service的接口和…

mac 安装配置oh-my-zsh

1. 安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 按照步骤安装即可 安装完成查看版本 brew -v 2. 安装zsh brew install zsh 查看版本 zsh --version 3. 安装oh-my-zsh github官网链…

反序列化字符串逃逸(上篇)

首先,必须先明白,这个点并不难,我给大家梳理一遍就会明白。 反序列化字符串逃逸就是序列化过程中逃逸出来字符,是不是很简单,哈哈哈! 好了,不闹了,其实: 这里你们只要懂…

JavaEE中的监听器的作用和工作原理

在JavaEE(Java Platform, Enterprise Edition)中,监听器(Listener)是一种重要的组件,用于监听和响应Web应用程序中的事件。监听器的作用是在特定的事件发生时执行一些自定义的逻辑。常见的监听器包括Servle…