当前位置:网站首页>Minio文件上传
Minio文件上传
2022-08-02 14:01:00 【昊天h1】
文件上传
一,本地上传
/** * @description:最基础的上传 * @author: Teao * @date: 2022/7/8 0:19 * @param: [formData] * @return: com.wangshidai.springboot002.entity.R **/
@PostMapping("/uploadImg")
public R upload(MultipartFile formData) throws IOException {
log.info("开始处理文件上传,文件名是{}",formData.getOriginalFilename()); // 打印日志
// 取到上传的文件的后缀名
String filename = formData.getOriginalFilename();
String s = filename.substring(filename.indexOf("."));
formData.transferTo(new File(("d:\\"+UUID.randomUUID()+s)));// 将UUID.randomUUID()+s随机文件名 文件传到本地服务器去
return new R(200,"上传成功",UUID.randomUUID()+s);
}
二,Minio上传
1.导入依赖
<!--minio-->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.0.3</version>
</dependency>
2.配置application.yml文件
# minio 参数配置
minio:
endpoint: http://192.168.80.188:9090 # minio 服务地址
accessKey: minioadmin # minio Access key就像用户ID,可以唯一标识你的账户
secretKey: minioadmin # minio Secret key是你账户的密码
bucketName: teao-test # minio 桶名称
3.添加配置文件(MinIoClientConfig)
@Configuration
public class MinIoClientConfig {
@Value("${minio.endpoint}")
private String endpoint;
@Value("${minio.accessKey}")
private String accessKey;
@Value("${minio.secretKey}")
private String secretKey;
/** * 注入minio 客户端 * @return */
@Bean
public MinioClient minioClient(){
return MinioClient.builder()
.endpoint(endpoint)
.credentials(accessKey, secretKey)
.build();
}
}
4.使用
@Value("${minio.bucketName}")
private String bucketName;
@Resource
private MinioClient minioClient;
/** * @description:Minio上传 * @author: Teao * @date: 2022/7/8 8:14 * @param: [formData] * @return: com.wangshidai.springboot002.entity.R **/
@PostMapping("/uploadImg")
public R upload(MultipartFile formData) throws IOException {
log.info("开始处理文件上传,文件名是{}",formData.getOriginalFilename());
// 生成上传随机的文件名
String filename = formData.getOriginalFilename();
String s = filename.substring(filename.indexOf("."));
filename = UUID.randomUUID()+s;
try {
PutObjectArgs objectArgs = PutObjectArgs.builder().object(filename)
.bucket(bucketName)
.contentType(formData.getContentType())
.stream(formData.getInputStream(),formData.getSize(),-1).build();
minioClient.putObject(objectArgs); // 需要注入进来 @Resource private MinioClient minioClient;
// 拼接将要返回的字符串
String url = "http://60.205.214.35:9090/wangshidai-test/"+filename;
return new R(200,"上传成功",url);
} catch (Exception e) {
e.printStackTrace();
return new R(500,"上传失败",null);
}
}
边栏推荐
猜你喜欢
随机推荐
[C language] Analysis of function recursion (3)
els 长条碰撞变形判断
MySQL - ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
FreeBSD bnxt以太网驱动源码阅读记录三:
Configure zabbix auto-discovery and auto-registration.
一维卷积神经网络_卷积神经网络的基础知识「建议收藏」
Embedded system driver primary [2] - based on character device driver _ basic framework
2022-08-02日报:2022年7月最热的10篇AI论文
文件加密软件有哪些?保障你的文件安全
logback源码阅读(二)日志打印,自定义appender,encoder,pattern,converter
SQL函数 USER
A number of embassies and consulates abroad have issued reminders about travel to China, personal and property safety
Interviewer: Can you talk about optimistic locking and pessimistic locking?
Mysql's case the when you how to use
苏州大学:从 PostgreSQL 到 TDengine
deal!It's July 30th!
二分查找 && 树
RKMPP 在FFmpeg上实现硬编解码
ping命令的使用及代码_通过命令查看ping路径
els 长条方块变形条件、边界碰撞判定









