Spring Boot + MinIO 实现文件切片极速上传技术
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.UUID;
public class MinioFileUploader {
private final MinioClient minioClient;
public MinioFileUploader(MinioClient minioClient) {
this.minioClient = minioClient;
}
public String uploadFile(MultipartFile file, String bucketName) {
String fileName = UUID.randomUUID().toString() + "-" + file.getOriginalFilename();
try (InputStream inputStream = file.getInputStream()) {
// 使用minio的Java客户端进行文件上传
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket(bucketName)
.object(fileName)
.contentType(file.getContentType())
.stream(inputStream, file.getSize(), -1)
.build());
return fileName;
} catch (Exception e) {
throw new RuntimeException("Error uploading file to MinIO", e);
}
}
}
这段代码展示了如何使用Spring Boot和MinIO实现文件的上传功能。首先,它创建了一个MinioFileUploader类,该类接收一个MinioClient实例作为依赖注入。uploadFile方法接收一个MultipartFile对象和一个bucket名称,然后生成一个唯一的文件名,并使用MinIO Java客户端库中的uploadObject方法将文件上传到指定的bucket中。这个过程中,文件的元数据(如MIME类型)也被设置好了。
评论已关闭