|
|
|
@@ -4,6 +4,7 @@ import com.xueyi.file.config.MinioConfig; |
|
|
|
import com.xueyi.file.utils.FileUploadUtils; |
|
|
|
import io.minio.MinioClient; |
|
|
|
import io.minio.PutObjectArgs; |
|
|
|
import io.minio.RemoveObjectArgs; |
|
|
|
import org.apache.commons.io.FileUtils; |
|
|
|
import org.apache.commons.io.IOUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
@@ -59,6 +60,11 @@ public class MinioSysFileServiceImpl implements ISysFileService { |
|
|
|
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String uploadTempFile(MultipartFile file) throws Exception { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public String uploadFile(String fileName, File file) throws Exception { |
|
|
|
fileName = FileUploadUtils.extractFilename(fileName); |
|
|
|
@@ -82,6 +88,29 @@ public class MinioSysFileServiceImpl implements ISysFileService { |
|
|
|
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String uploadTempFile(String fileName, File file) throws Exception { |
|
|
|
fileName = FileUploadUtils.extractFilename(fileName); |
|
|
|
InputStream inputStream = FileUtils.openInputStream(file); |
|
|
|
System.out.println("file original filename = " + fileName); |
|
|
|
System.out.println("file size = " + file.length()); |
|
|
|
|
|
|
|
// 使用IOUtils.toByteArray()方法确保正确地读取输入流中的数据 |
|
|
|
byte[] fileBytes = IOUtils.toByteArray(inputStream); |
|
|
|
|
|
|
|
// 上传文件到MinIO |
|
|
|
String minioFileName = uploadFileToMinIO(fileName, fileBytes); |
|
|
|
|
|
|
|
System.out.println("MinIO Temp文件上传成功,Minio 文件名:" + minioFileName); |
|
|
|
|
|
|
|
// 获取fileName的最后一个'/'的位置的字符串,并用URLEncoder进行UTF-8编码后,再拼接到fileName中 |
|
|
|
String splitStr = fileName.substring(fileName.lastIndexOf("/") + 1); |
|
|
|
splitStr = URLEncoder.encode(splitStr, "UTF-8"); |
|
|
|
fileName = fileName.substring(0, fileName.lastIndexOf("/") + 1) + splitStr; |
|
|
|
|
|
|
|
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName; |
|
|
|
} |
|
|
|
|
|
|
|
// 上传文件到MinIO |
|
|
|
private String uploadFileToMinIO(String fileName, byte[] fileBytes) throws Exception { |
|
|
|
PutObjectArgs args = PutObjectArgs.builder() |
|
|
|
@@ -120,10 +149,11 @@ public class MinioSysFileServiceImpl implements ISysFileService { |
|
|
|
/** |
|
|
|
* 文件删除接口 |
|
|
|
* |
|
|
|
* @param url 文件地址 |
|
|
|
* @param fileName 文件名 |
|
|
|
* @return 结果 |
|
|
|
*/ |
|
|
|
public Boolean deleteFile(String url) throws Exception { |
|
|
|
public Boolean deleteFile(String fileName) throws Exception { |
|
|
|
client.removeObject(RemoveObjectArgs.builder().bucket(minioConfig.getBucketName()).object(fileName).build()); |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |