<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用 Docker 快速搭建 MinIO 文件存儲服務

      在日常開發中,我們經常需要處理文件上傳、下載、存儲與訪問的場景,比如圖片、視頻、日志文件、模型數據集等。傳統的文件系統難以滿足高并發、分布式部署以及云原生化的需求。而 MinIO 作為一款高性能、輕量級、兼容 Amazon S3 協議的對象存儲服務,正是為此而生。

      本文將帶你從零開始,通過 Docker 部署 MinIO 服務,并結合 Java SDK 實現文件的上傳與訪問。

      無論你是想在本地搭建一個輕量文件中心,還是為企業內部系統構建一個可擴展的對象存儲方案,這篇文章都能幫你快速上手。

      1 拉取 Minio 鏡像

      docker pull minio/minio:RELEASE.2025-04-22T22-12-26Z
      

      2 啟動 Minio 容器

      我們假設你希望訪問端口為 9000(API)和 9001(Web 控制臺),可以這樣運行:

      docker run -d \
        --name minio \
        -p 9000:9000 \
        -p 9001:9001 \
        -v /Users/zhangyong/docker/minio/data:/data \
        -v /Users/zhangyong/docker/minio/config:/root/.minio \
        -e "MINIO_ROOT_USER=admin" \
        -e "MINIO_ROOT_PASSWORD=admin123456" \
        minio/minio:RELEASE.2025-04-22T22-12-26Z \
        server /data --console-address ":9001"
      

      01 參數說明

      • -p 9000:9000:MinIO API 服務端口
      • -p 9001:9001:Web 控制臺端口
      • -v /Users/zhangyong/docker/minio/data:/data:映射數據目錄
      • -v /Users/zhangyong/docker/minio/config:/root/.minio:保存配置
      • MINIO_ROOT_USERMINIO_ROOT_PASSWORD:管理員賬號密碼
      • server /data --console-address ":9001":指定數據目錄并啟用控制臺端口

      02 啟動后訪問

      3 上傳文件

      MinIO(以及所有兼容 S3 的對象存儲系統)中,桶(Bucket) 是最頂層的邏輯存儲單元,可以理解為一個“命名空間”或“大文件夾”,它是所有對象(文件)的容器。

      MinIO 不存在真正的目錄結構,而是通過對象 key 的前綴來模擬目錄層級

      例如,我們可以創建一個 bucket 叫 datasets ,數據集下面的文件對象如下:

      datasets/
       ├── mydataset1/
       │    ├── train/image1.jpg
       │    └── train/image2.jpg
       └── mydataset2/
            ├── data.csv
            └── labels.txt
      

      雖然看起來像目錄樹,但實際上存儲系統中只有對象:

      datasets/mydataset1/train/image1.jpg
      datasets/mydataset1/train/image2.jpg
      datasets/mydataset2/data.csv
      datasets/mydataset2/labels.txt
      

      MinIO 客戶端(mc)或 SDK(Java/Python)在列舉對象時,會自動把這些前綴識別為“目錄”。

      接下來,我們按照流程上傳文件。

      1、創建桶 datasets

      2、創建新路徑 mydataset1

      3、上傳圖片

      4 訪問授權

      1、修改桶的訪問策略

      圖中,我們需要將訪問策略從 Private 修改成 Public 。

      2、訪問圖片

      MinIO 地址:http://localhost:9000

      桶名:datasets

      對象路徑:mydataset1/父與女.png

      因為桶已經設置為 Public ,所以我們可以直接訪問如下的鏈接即可:

      5 Java 示例

      01 創建 Access Key

      02 Minio 上傳示例

      1、添加依賴

      <dependency>
          <groupId>io.minio</groupId>
          <artifactId>minio</artifactId>
          <version>8.5.10</version>
      </dependency>
      

      2、編寫代碼

      public class MinioUnitTest {
      
          public static void main(String[] args) {
              try {
                  // 1. 初始化 MinIO 客戶端
                  MinioClient minioClient = MinioClient.builder()
                          .endpoint("http://localhost:9000") // MinIO 地址
                          // accessKey 和 secretKey
                          .credentials("yHxFBiulXKsuhbg9nHqO", "qmsQU4JuWuwlr3ZgY4eMFbQ9LaTzzEHMV6T722kC")
                          .build();
      
                  // 2. 文件信息
                  String bucketName = "datasets";
                  String objectName = "mydataset1/images/xiaoyuanjiang.webp"; // 上傳路徑(類似目錄)
                  String filePath = "/Users/zhangyong/Pictures/xiaoyuanjiang.webp"; // 本地文件路徑
      
                  // 3. 上傳文件(流式上傳)
                  try (InputStream in = new FileInputStream(filePath)) {
                      minioClient.putObject(
                              PutObjectArgs.builder()
                                      .bucket(bucketName)
                                      .object(objectName)
                                      .stream(in, in.available(), -1)
                                      .contentType("image/png") // 可根據文件類型設置
                                      .build()
                      );
                      System.out.println("? 文件上傳成功: " + objectName);
                  }
      
                  // 4. 拼接直鏈 URL(因為是 public bucket)
                  String publicUrl = String.format("http://localhost:9000/%s/%s", bucketName, objectName);
                  System.out.println("? 上傳成功,直鏈地址:");
                  System.out.println(publicUrl);
      
      //            // 4. 生成臨時訪問鏈接(可選)
      //            String url = minioClient.getPresignedObjectUrl(
      //                    GetPresignedObjectUrlArgs.builder()
      //                            .method(Method.GET)
      //                            .bucket(bucketName)
      //                            .object(objectName)
      //                            .expiry(60 * 60) // 1小時有效
      //                            .build()
      //            );
      //            System.out.println("?? 臨時訪問地址: " + url);
      
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
      

      3、執行效果

      posted @ 2025-10-14 21:10  勇哥編程游記  閱讀(602)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩av裸体在线播放| 久激情内射婷内射蜜桃| 性欧美vr高清极品| 国产深夜福利视频在线| 精品国产精品午夜福利| 久久av色欲av久久蜜桃网| 亚洲国产成人AⅤ片在线观看| 欧美性猛交xxxx免费看| 亚洲 日韩 在线精品| 99久久激情国产精品| 日韩国产精品无码一区二区三区| 天堂av最新版中文在线| 国产亚洲av夜间福利香蕉149| 一区二区三区不卡国产| 色九九视频| 给我中国免费播放片在线| 99精品久久久久久久婷婷| 久久妇女高潮喷水多| 久久99国产精品尤物| 亚洲最大国产成人综合网站| 开心五月婷婷综合网站| 亚洲国产欧美在线观看片| 日本免费精品| 99久久精品国产一区二区蜜芽| 日本高清视频网站www| 久久毛片少妇高潮| 台北市| 亚洲一区二区三区18禁| 99久久激情国产精品| 成熟丰满熟妇av无码区| 兔费看少妇性l交大片免费| 国产盗摄xxxx视频xxxx| 免费拍拍拍网站| 成人欧美一区在线视频| 亚洲a∨国产av综合av| 中文区中文字幕免费看| 亚洲天堂男人的天堂在线| 中文字幕无码av不卡一区| 国产精品区免费视频| 亚洲免费人成在线视频观看| 久久精品国产亚洲av麻豆长发 |