Heim  >  Artikel  >  Java  >  Wie SpringBoot den Minio-Dateispeicher integriert

Wie SpringBoot den Minio-Dateispeicher integriert

PHPz
PHPznach vorne
2023-05-12 22:37:121124Durchsuche

Hintergrund

Das Entwicklungsframework des Unternehmens integriert lokalen Anhangsspeicher, Alibaba Cloud, Huawei Cloud usw. Das aktuelle Projekt erfordert, dass sich der Anhangsspeicher und die Anwendungsbereitstellungsumgebung nicht auf demselben Server befinden und auch kein Cloud-Speicher verwendet werden kann Nach der technischen Auswahl festgelegt. Integrieren Sie Minio, stellen Sie Minio auf einem anderen Server bereit und öffnen Sie den externen Netzwerkport, um das Problem zu lösen Paket

Download-Adresse: http://xiazai.jb51.net/202204/yuanma/minio_jb51.rar

Erstellen Sie den minioData-Ordner als Dateispeicherpfad, entpacken Sie das Installationspaket und ändern Sie die entsprechenden Konfigurationsdateidateien entsprechend der Platzierung path

minio-service.xml und 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>
set MINIO_ACCESS_KEY=admin
set MINIO_SECRET_KEY=abcd@1234
minio.exe server -address :9999 D:\minioData

Geben Sie nach dem Dekomprimieren des Bereitstellungspakets den entsprechenden Dekomprimierungspfad cmd ein und geben Sie den Befehl minio.exe server D:minioData ein. Schließen Sie nach der Initialisierung den cmd-Befehl

Verwenden Sie Wählen Sie zum Installieren des Dienstes minio-service.exe aus.

Download-Adresse des Windows-Dienstinstallationstools:http://xiazai.jb51.net/202204/yuanma/windowsfuwu_jb51.rar

Besuchen Sie nach dem Starten des Dienstes http: //127.0.0.1:9999/

Benutzername: admin Passwort: abcd@1234 (Port- und Kontopasswort Sie sind alle in der Datei run.bat konfiguriert)

Geben Sie das System ein, um einen Bucket zum Speichern von Dateien zu erstellen (ähnlich wie Alibaba Cloud)

Konfigurieren Sie die POM-Datei --h3>

  <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>7.1.0</version>
        </dependency>
Wie SpringBoot den Minio-Dateispeicher integriertKonfigurieren Sie die YML-Datei

Konfigurieren Sie sie hier separat. Die Upload-/Download-Adresse ist das offizielle Projekt nach der Konfiguration des externen Netzwerkports Auf den Server kann nicht zugegriffen werden. Das Hochladen erfolgt über das interne Netzwerk und das Herunterladen erfolgt über das externe Netzwerk

Die Angabe des Inhaltstyps dient dazu, dass, wenn der Browser Anhänge öffnen kann, Bilder und PDF-Dateien online durchsucht werden können.

Wenn nicht angegeben, ist die Standardeinstellung Stream und das Öffnen von Dateien wird als Download vereinheitlicht.

#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

Dateien herunterladen Es ist zu beachten, dass die generierte Datei-Download-Adresse an die in MinioClient angegebene Serveradresse gebunden ist. Sie ist nach Verwendung des Nginx-Proxys ungültig

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;
    }

Löschen Sie die Datei

 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;
    }

Das obige ist der detaillierte Inhalt vonWie SpringBoot den Minio-Dateispeicher integriert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen