同社の開発フレームワークは、添付ファイル ローカル ストレージ、Alibaba Cloud、Huawei Cloud などを統合しています。現在のプロジェクトでは、添付ファイル ストレージとアプリケーション展開環境を同じサーバー上に配置することはできず、クラウド ストレージを同じサーバー上に配置することもできません。テクノロジーの選択後、minio をフレームワークに統合することが決定され、minio を別のサーバーにデプロイし、外部ネットワーク ポートを開くことで問題を解決できます
#Minio のインストールとデプロイメント minio のインストールおよび展開パッケージをダウンロードし、対応する構成ファイルを作成します。統合された圧縮パッケージは次のとおりです。ダウンロード アドレス: http://xiazai.jb51.net/202204/yuanma/minio_jb51.rarminioData フォルダーをファイル ストレージ パスとして作成し、インストール パッケージを解凍し、配置パスに従って対応する構成ファイルを変更します minio-service.xml および 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
<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
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; }
コンテンツ タイプを指定して、ブラウザーが添付ファイル、画像、PDF、その他のファイルを開くことができます。 オンラインで参照できます。
指定しない場合、デフォルトはストリームであり、開いているファイルがダウンロードされます
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; }
ファイルを削除
public boolean deleteMinioFile(AttachmentDO attachmentDO){ boolean result = true; try{ MinioClient minioClient = InitMinio(); String bucketName =frameConfig.getMinio_bucknetname(); minioClient.removeObject(bucketName,getKey(attachmentDO)); }catch (Exception e){ logger.error("Minio删除文件失败:" + e.getMessage()); result = false; } return result; }
以上がSpringBoot が Minio ファイル ストレージを統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。