跳到主要內容
孤雲

MinIO / 自建

大約十來分鐘,MinIO 軟體本身免費,成本只有你自己的伺服器與頻寬 —— 下面是為自己架設的 MinIO 準備一個桶和一對金鑰的步驟。

端點是你自己的位址,孤雲推不出來;端點請一律使用 HTTPS(應用只按 HTTPS 存取),內網自簽憑證請先把憑證加入系統信任。

分步操作

  1. 第 1 步

    裝好並登入 MinIO

    • 到 MinIO 官網 依你的系統裝好伺服器並啟動;官方安裝方式見官方文件。
    • 預設 S3 API 埠是 9000,主控台埠由啟動參數決定(很多安裝方式會設成 9001)—— 以啟動日誌列印的位址為準,用 root 帳號登入主控台。
  2. 第 2 步

    建立儲存桶

    • 在主控台左側打開「Buckets」(物件瀏覽器)→「Create Bucket」。
    • 填一個桶名(S3 規則:3–63 位小寫字母、數字、連字號或句點,開頭與結尾必須是字母或數字),其餘選項保持預設,點建立。
  3. 第 3 步

    建立存取金鑰

    • 主控台「Identity」→「Users」→「Create User」建立一個使用者,並在建立時給它掛一條只涵蓋這個桶的策略。
    • 也可以給既有使用者建立服務帳號:打開該使用者 →「Service Accounts」→「Create service account」,會得到一對 Access Key 與 Secret Key(只顯示一次,立刻存好)。
  4. 第 4 步

    抄下端點

    • 端點是你的 S3 API 位址,例如 https://minio.example.com(要帶埠就一起寫,例如 https://你的伺服器位址:9000)。請一律使用 HTTPS;自簽憑證要先把憑證加入系統信任。
    • 端點只寫協定與主機名稱(要帶埠就一起寫),不要帶桶名和路徑;9001 是主控台,不是端點。
  5. 第 5 步

    回孤雲填三個值並測試

    • 孤雲「新增儲存」→ 服務商選 MinIO / 自建,依下面那張表填桶名、端點與金鑰。
    • 最後點「測試連線並儲存」。

給這個使用者一條只涵蓋這個桶的策略

  1. 在主控台「Access」→「IAM Policies」→「Create Policy」,貼上下面那段 JSON(MinIO 的策略語法與 AWS IAM 相同),把 your-bucket-name 換成你的桶名。
  2. 回到「Identity」→「Users」,在該使用者的 Policies 裡只勾這一條:MinIO 預設拒絕沒被明確允許的操作。
  3. 不要用 root 帳號的金鑰 —— 管理員金鑰對整台伺服器都有權限。

這個桶的最小權限策略

在 IAM Policies 裡新建策略時貼上這段:

json
{ "Version": "2012-10-17",
  "Statement": [
    { "Effect": "Allow", "Action": ["s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads"], "Resource": "arn:aws:s3:::your-bucket-name" },
    { "Effect": "Allow", "Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts"], "Resource": "arn:aws:s3:::your-bucket-name/*" }
  ] }

把裡面的 your-bucket-name 換成真實桶名(兩處)。不要把資源範圍縮小到某個目錄 —— 孤雲要在 .guyun/ 前綴下寫回收站清單、裝置連線記錄與跨裝置交接記錄。

其他情況(用不到可以跳過)

主控台和 S3 API 是兩個埠:9001 是網頁主控台,9000 才是孤雲要連的 API(以你的啟動參數為準)。

費用

  • MinIO 軟體免費:開放原始碼與商業授權以 MinIO 官網 為準。
  • 成本是你自己的伺服器、硬碟與頻寬;孤雲這邊不額外收費。

抄下這三個值

它們要填進孤雲「新增儲存」頁對應的格子: 端點:MinIO 沒有預置地點 —— 請在 App 的 HTTPS Endpoint 裡手填你的服務位址(例如 https://minio.example.com);桶名與金鑰照上表填。

抄下這個值填進孤雲的哪一格
桶名
你剛才建立的桶名,例如 your-bucket-name。
桶名稱
端點
你自己的 API 位址,例如 https://minio.example.com。
Endpoint
金鑰
剛才那對 Access Key 與 Secret Key。
Access Key 與 Secret Key

怎麼知道成了

  • 「測試連線並儲存」通過,說明桶名、端點與金鑰都對得上,孤雲能連上你的 MinIO。
  • 之後這條儲存就會出現在孤雲的儲存列表裡,可以開啟看桶裡的檔案。
  • 連線報錯時,到常見錯誤對照排查。

回到孤雲,點「測試連線並儲存」。