Rumah >Java >javaTutorial >Bagaimana SpringBoot menyepadukan storan fail Minio
Rangka kerja pembangunan syarikat menyepadukan storan tempatan lampiran, Alibaba Cloud, Huawei Cloud, dll. Projek semasa memerlukan storan lampiran dan persekitaran penggunaan aplikasi tidak boleh berada pada pelayan yang sama, begitu juga storan awan digunakan. Selepas pemilihan teknologi, putuskan untuk menyepadukan minio ke dalam rangka kerja pada pelayan lain dan buka port rangkaian luaran untuk menyelesaikan masalah
Muat turun pemasangan minio. dan pakej penempatan dan cipta fail konfigurasi yang sepadan , pakej termampat bersepadu disediakan di sini
Alamat muat turun: http://xiazai.jb51.net/202204/yuanma/minio_jb51.rar
Buat folder minioData sebagai laluan penyimpanan fail, Nyahzip pakej pemasangan dan ubah suai fail fail konfigurasi yang sepadan
minio-service.xml dan run.bat
<service> <id>minio</id> <name>MinIO Service</name> <description>MinIO is a High Performance Object Storage</description> <logpath>D:\minio\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> <executable>D:\minio\run.bat</executable> </service>rrree
mengikut laluan peletakan pakej penempatan, cmd memasuki laluan penyahmampatan yang sepadan dan memasuki arahan pelayan minio.exe D :minioData Selepas permulaan, tutup arahan cmd
Gunakan alat pemasangan perkhidmatan untuk memasang perkhidmatan, pilih minio-service.exe
alamat muat turun alat pemasangan perkhidmatan windows: http://xiazai.jb51.net/202204 /yuanma/windowsfuwu_jb51.rar
Selepas memulakan perkhidmatan, lawati http://127.0.0.1: 9999/
Nama pengguna: admin Kata laluan: abcd@1234 (Kata laluan port dan akaun kedua-duanya dalam fail .bat dijalankan)
Masukkan sistem untuk mencipta baldi untuk menyimpan fail (serupa dengan Alibaba Cloud)
set MINIO_ACCESS_KEY=admin set MINIO_SECRET_KEY=abcd@1234 minio.exe server -address :9999 D:\minioData
Alamat muat naik/muat turun yang dikonfigurasikan di sini ialah alamat rasmi projek. Ada kemungkinan bahawa selepas mengkonfigurasi port rangkaian luaran, port rangkaian luaran yang sepadan tidak boleh diakses dalam pelayan Muat naik pergi ke rangkaian dalaman dan muat turun pergi ke luar Net
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.1.0</version> </dependency>
#minio配置 # 上传地址 minio_uploadurl: http://192.168.1.42:9999/ # 下载地址 minio_downloadurl: http://192.168.1.42:9999/ # 账户 minio_accesskey: admin # 密码 minio_secrectkey: abcd@1234 # 存储文件夹 minio_bucknetname: xxx
Kaedah getkey hanya menentukan laluan storan tersuai yang sepadan
Menentukan jenis kandungan adalah supaya apabila penyemak imbas boleh dibuka lampiran, fail seperti gambar dan PDF boleh dilayari dalam talian
Jika tidak dinyatakan, lalai adalah strim dan membuka fail disatukan untuk dimuat turun
public MinioClient InitMinio() { MinioClient minioClient = MinioClient.builder(). endpoint(frameConfig.getMinio_uploadurl()). credentials(frameConfig.getMinio_accesskey(),frameConfig.getMinio_secrectkey()).build(); try{ boolean isExist = minioClient.bucketExists(frameConfig.getMinio_bucknetname()); if (!isExist) { minioClient.makeBucket(frameConfig.getMinio_bucknetname()); } }catch (Exception e){ e.printStackTrace(); } return minioClient; }
Ia harus diperhatikan bahawa alamat muat turun fail yang dijana terikat pada alamat pelayan yang dinyatakan dalam MinioClient, dan tidak sah selepas menggunakan proksi nginx
public boolean uploadMinioFile(InputStream stream, AttachmentDO attachmentDO,String contentType){ boolean result = true; try{ MinioClient minioClient = InitMinio(); String bucketName =frameConfig.getMinio_bucknetname(); PutObjectOptions option = new PutObjectOptions(stream.available(), -1); option.setContentType(contentType); minioClient.putObject(bucketName,getKey(attachmentDO),stream,option); }catch (Exception e){ logger.error("Minio上传文件失败:" + e.getMessage()); result = false; } return result; }
public String readMinioCommonFile(AttachmentDO attachmentDO){ String fileurl = ""; try{ MinioClient minioClient = InitMinio(); String bucketName =frameConfig.getMinio_bucknetname(); return minioClient.presignedGetObject(bucketName, getKey(attachmentDO)); }catch (Exception e){ logger.error("Minio读取文件失败:" + e.getMessage()); } return fileurl; }
Atas ialah kandungan terperinci Bagaimana SpringBoot menyepadukan storan fail Minio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!