封装方法:
public String upload(MultipartFile file) throws Exception {
StringBuilder builder = new StringBuilder();
// 获取当前时间 年月日时分秒毫秒 LocalDateTime.now()
// format() format格式化形式 字符串.format(字符串、数字等)
// DateTimeFormatter 线程安全的格式化工具类
// DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")
// 将时间格式化为yyyyMMddHHmmssSSS
String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
builder.append(time);
// RandomStringUtils 随机数工具类
// 随机生成6位不带字母带数字的随机数
// 第一个参数:count: 生成几位数
// 第二个参数: letters: 是否带字母
// 第三个参数: numbers: 是否带数字
builder.append(RandomStringUtils.random(6,false,true));
/** *FilenameUtils.getExtension() 获取文件的后缀名 * file.getOriginalFilename() 得到上传时的文件名 */ builder.append(".").append(FilenameUtils.getExtension(file.getOriginalFilename())); //到此图片重命名就解决了 之后是将图片上传到minio服务器上的操作 // 将照片上传minio服务器 // 第一个参数是地址 第二个用户名 第三个密码 MinioClient minioClient = new MinioClient("http://ip:port/","username","password"); //创建存储桶 第一个参数为图片大小 第二个为 PutObjectOptions options = new PutObjectOptions(file.getSize(), 0); //file.getContentType() java获取文件 options.setContentType(file.getContentType()); //使用putObject上传一个文件到存储桶中 // 第一个参数为bucketName 存储桶的名称, // 第二个参数为图片名称 // 第三个参数为 图片输入流 // 第四个参数为 存储桶对象 minioClient.putObject("images", builder.toString(), file.getInputStream(), options); return builder.toString();
}