51 lines
1.4 KiB
Java
51 lines
1.4 KiB
Java
package com.muyu.file.service;
|
|
|
|
import com.alibaba.nacos.common.utils.IoUtils;
|
|
import com.muyu.file.config.MinioConfig;
|
|
import com.muyu.file.utils.FileUploadUtils;
|
|
import io.minio.MinioClient;
|
|
import io.minio.PutObjectArgs;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import java.io.InputStream;
|
|
|
|
/**
|
|
* Minio 文件存储
|
|
*
|
|
* @author muyu
|
|
*/
|
|
@Service
|
|
public class MinioSysFileServiceImpl implements ISysFileService {
|
|
@Autowired
|
|
private MinioConfig minioConfig;
|
|
|
|
@Autowired
|
|
private MinioClient client;
|
|
|
|
/**
|
|
* Minio文件上传接口
|
|
*
|
|
* @param file 上传的文件
|
|
*
|
|
* @return 访问地址
|
|
*
|
|
* @throws Exception
|
|
*/
|
|
@Override
|
|
public String uploadFile (MultipartFile file) throws Exception {
|
|
String fileName = FileUploadUtils.extractFilename(file);
|
|
InputStream inputStream = file.getInputStream();
|
|
PutObjectArgs args = PutObjectArgs.builder()
|
|
.bucket(minioConfig.getBucketName())
|
|
.object(fileName)
|
|
.stream(inputStream, file.getSize(), -1)
|
|
.contentType(file.getContentType())
|
|
.build();
|
|
client.putObject(args);
|
|
IoUtils.closeQuietly(inputStream);
|
|
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
|
|
}
|
|
}
|