MinIO ialah perkhidmatan penyimpanan objek berdasarkan protokol sumber terbuka Lesen Apache v2.0. Ia serasi dengan antara muka perkhidmatan storan awan Amazon S3 dan sangat sesuai untuk menyimpan data tidak berstruktur berkapasiti besar, seperti gambar, video, fail log, data sandaran dan imej bekas/mesin maya, dsb., dan fail objek boleh daripada sebarang saiz, antara beberapa Julat dari kb hingga maksimum 5T.
MinIO ialah perkhidmatan yang sangat ringan yang boleh digabungkan dengan mudah dengan aplikasi lain, seperti NodeJS, Redis atau MySQL.
Memandangkan MiniIO adalah pelayan yang berasingan dan perlu digunakan secara berasingan, sila semak blog berikut untuk penggunaan MiniIO pada sistem Windows.
.
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> </dependency> <!-- SpringBoot Web容器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.3.4</version> </dependency>Salin selepas log masukKaedah yang terlibat dalam minio ialah: menentukan sama ada baldi wujud, membuat baldi, memuat naik fail, membaca fail, memuat turun fail, memadam fail dan operasi lain 5. Menulis kelas perniagaan Java
# 设置单个文件大小 spring.servlet.multipart.max-file-size= 50MB #minio文件服务器配置 s3.url=http://localhost:9000 s3.accessKey=admin s3.secretKey=admin123 s3.bucketName=test
import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * @Author yang * @Date 2023/1/3 14:00 * @Version 1.0 */ @Data @Component @ConfigurationProperties(prefix = "s3") public class StorageProperty { private String url; private String accessKey; private String secretKey; // private long callTimeOut = 60000; // private long readTimeOut = 300000; }
Antaramuka untuk muat naik fail, bacaan fail, muat turun fail dan pemadaman fail adalah seperti berikut:
/** * @Author yangb * @Date 2022/11/27 15:55 * @Version 1.0 */ @RestController @RequestMapping("/minio") public class MinIoController extends BaseController { MinioUtil minioUtil = new MinioUtil(); /** * 上传文件 * @param file * @return */ @PostMapping("/uploadFile") public AjaxResult uploadFile(@RequestBody MultipartFile file) { MinioClient minioClient = MinioClientConfig.getMinioClient(); if (minioClient == null) { return AjaxResult.error("连接MinIO服务器失败", null); } ResultEntity<Map<String, Object>> result = minioUtil.minioUpload(file, "", "data-enpower"); if (result.getCode() == 0) { return AjaxResult.success("上传成功"); } else { return AjaxResult.error("上传错误!!!"); } } /** * 获取文件预览地址 * @param fileName * @return */ @RequestMapping("/getRedFile") public AjaxResult getRedFile(@RequestBody String fileName) { MinioClient minioClient = MinioClientConfig.getMinioClient(); if (minioClient == null) { return AjaxResult.error("连接MinIO服务器失败", null); } String url = minioUtil.getPreviewFileUrl("data-enpower",fileName); return AjaxResult.success(url); } /** * 下载文件 * @param fileName * @param response * @return */ @RequestMapping("/downloadFile") public String downloadFile(@RequestParam String fileName, HttpServletResponse response) { MinioClient minioClient = MinioClientConfig.getMinioClient(); if (minioClient == null) { return "连接MinIO服务器失败"; } return minioUtil.downloadFile("data-enpower",fileName,response) != null ? "下载成功" : "下载失败"; } /** * 删除文件 * * @param fileName 文件路径 * @return */ @PostMapping("/deleteFile") public String deleteFile(String fileName) { MinioClient minioClient = MinioClientConfig.getMinioClient(); if (minioClient == null) { return "连接MinIO服务器失败"; } boolean flag = minioUtil.deleteFile("data-enpower",fileName); return flag == true ? "删除成功" : "删除失败"; } }
1、 文件上传
minio上的文件
2、 文件下载
3、 文件删除
我们在minio上看看文件是否已删除
Atas ialah kandungan terperinci SpringBoot+MinIO melaksanakan penyimpanan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!