Rumah > Java > javaTutorial > Bagaimana SpringBoot menyepadukan storan fail Minio

Bagaimana SpringBoot menyepadukan storan fail Minio

PHPz
Lepaskan: 2023-05-12 22:37:12
ke hadapan
1222 orang telah melayarinya

Latar Belakang

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

Pemasangan dan penggunaan minio

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>
Salin selepas log masuk
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)

Bagaimana SpringBoot menyepadukan storan fail Minio

Konfigurasikan fail pom--h3>

set MINIO_ACCESS_KEY=admin
set MINIO_SECRET_KEY=abcd@1234
minio.exe server -address :9999 D:\minioData
Salin selepas log masuk

Konfigurasikan fail yml

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>
Salin selepas log masuk

Minio tool class

Memulakan klien

#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
Salin selepas log masuk

Muat naik fail

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;
    }
Salin selepas log masuk

Muat turun fail

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;
    }
Salin selepas log masuk

Padam fail

 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;
    }
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana SpringBoot menyepadukan storan fail Minio. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan