如何為 ownCloud Infinite Scale 配置 S3 物件存儲

ownCloud Infinite Scale 可以使用與 S3 相容的物件儲存來儲存檔案 blob,同時將檔案元資料保存在符合 POSIX 標準的檔案系統中。這種分離是需要理解的第一個概念:S3 並不能完全取代所有本地資料目錄。在支援的架構中s3ng,物件儲存用於保存二進位檔案內容,而元資料則保留在 POSIX 儲存裝置(例如本機檔案系統或 NFS)上。

本指南遵循 2026 年 10 月發布的 ownCloud Infinite Scale 儲存文件。它是為不熟悉該s3ng驅動程式的管理員編寫的,旨在幫助他們理解配置,然後再將其適配到 Docker Compose、systemd、Kubernetes 或其他部署方法中。

本指南中使用的官方參考資料包括ownCloud S3 儲存文件、儲存使用者服務配置和一般儲存注意事項。

ownCloud 無限擴充中的 S3 是什麼意思?

S3是亞馬遜最初推出的物件儲存 API。相容 S3 的服務將資料以物件的形式儲存在儲存桶中,並透過基於 HTTP 的 API 公開操作。 ownCloud Infinite Scale 使用s3ng儲存驅動程式將檔案 blob 放置在這樣的儲存桶中。

POSIX 儲存是指能夠提供 Infinite Scale 所期望的元資料檔案系統行為的檔案系統。使用s3ngPOSIX 儲存時,元資料不會移至 S3 儲存桶中。 ownCloud 文件明確指出,資料塊會儲存在 S3 中,而元資料則保留在 POSIX 儲存體中。

這種區別避免了一個常見的錯誤:將 Infinite Scale 指向某個儲存桶,並假設整個伺服器狀態都儲存在該儲存桶中。事實並非如此。您的備份和復原計畫必須同時涵蓋 POSIX 端的元資料和 S3 端的 blob 資料。

步驟 1:準備儲存桶、元資料儲存、憑證和網路路徑

在更改無限尺度之前,請準備以下四件事:

  • 一個專用的S3儲存桶。
  • 符合 POSIX 標準的s3ng元資料路徑。對於多節點部署,ownCloud 建議仔細考慮共用儲存;當多個 Infinite Scale 執行個體需要存取元資料路徑時,通常會使用 NFS。
  • 僅包含 Infinite Scale 所需的儲存桶權限的存取金鑰和秘密金鑰。
  • 從 Infinite Scale 主機或容器到 S3 端點的網路可達性,通常透過 HTTPS。
清單顯示,POSIX 元資料儲存、S3 儲存桶、存取憑證和 HTTPS 連線是 ownCloud Infinite Scale S3 儲存的先決條件。
在編輯 Infinite Scale 設定之前,請準備好 POSIX 元資料路徑、S3 儲存桶、憑證和網路連線。

請勿將儲存桶設為公開。 Infinite Scale 使用憑證對儲存桶進行驗證;公開存取既非必要也非理想。此外,如果可以建立專用服務身份,請避免重複使用通用管理員憑證。

如果您使用 Amazon S3,則終端節點和區域遵循 AWS 約定。如果您使用其他與 S3 相容的供應商,請在該提供者的文件中確認其終端節點格式、區域行為、TLS 要求和策略語法。 ownCloud 特別提醒,不同提供者的行為(例如加密細節)可能有所不同。

步驟 2:啟用 s3ng 驅動程式並提供 S3 連線設置

核心儲存設定是STORAGE_USERS_DRIVER=s3ng……。 Storage -Users服務是 Infinite Scale 元件,負責使用者檔案儲存。官方配置還保留了系統儲存驅動程式在常規ocis後端。

一個最小的環境變數集如下所示:

STORAGE_USERS_DRIVER=s3ng
STORAGE_USERS_S3NG_ROOT=/var/lib/ocis/storage/users
STORAGE_SYSTEM_DRIVER=ocis

STORAGE_USERS_S3NG_ENDPOINT=https://s3.example.com
STORAGE_USERS_S3NG_REGION=us-east-1
STORAGE_USERS_S3NG_ACCESS_KEY=YOUR_ACCESS_KEY
STORAGE_USERS_S3NG_SECRET_KEY=YOUR_SECRET_KEY
STORAGE_USERS_S3NG_BUCKET=ocis-files
終端編輯器顯示 s3ng 驅動程式、POSIX 元資料根、S3 端點、區域、存取金鑰、金鑰和儲存桶環境變數。
必要的 s3ng 環境變數將 Storage-Users 服務連接到 S3,同時在 POSIX 儲存體上保留元資料。

範例值僅供參考。請使用您的提供者所頒發的端點、區域、儲存桶和憑證。請勿將金鑰提交至公用 Git 倉庫。在容器編排中,建議使用平台提供的金鑰管理機制,而不是將憑證直接嵌入 Compose 檔案或清單中。

部署方式決定了這些變數的存放位置。 Docker Compose 部署可能會將它們放在 Infinite Scale 服務的environment設定部分,或從環境變數檔案載入。 systemd 部署可以使用環境變數檔案或單元配置。 Kubernetes 通常透過 Secret 和 Deployment 或 StatefulSet 注入這些變數。變數名稱是關鍵所在;其語法取決於您的平台。

步驟 3:授予 Infinite Scale 所需的儲存桶權限

儲存桶策略是一種身分和存取管理 (IAM) 規則,用於控制已認證身分可以對儲存桶及其物件執行哪些操作。 ownCloud 為驅動程式發布了所需的策略模式s3ng。

bucket-name將以下策略中的「bucket name」替換為您真實的儲存桶名稱:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ListBucket",
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::bucket-name"]
    },
    {
      "Sid": "ActionsInBucketContext",
      "Effect": "Allow",
      "Action": [
        "s3:*Object",
        "s3:*MultipartUpload",
        "s3:ListMultipartUploadParts"
      ],
      "Resource": ["arn:aws:s3:::bucket-name/*"]
    }
  ]
}
S3 儲存桶策略的特寫,顯示了 ownCloud Infinite Scale 儲存桶的 ListBucket、物件和多部分上傳權限。
策略結構必須允許儲存桶列表操作,以及 s3ng 驅動程式所需的物件上傳和多部分上傳操作。請使用官方文件中針對您的部署環境提供的確切策略。

不要透過授予帳戶中所有儲存桶的存取權限來解決存取被拒絕錯誤s3:*。首先使用文件中記錄的儲存桶範圍權限,然後僅在您的 S3 提供者要求使用提供者特定的等效權限時才進行調整。

步驟 4:重新啟動 Infinite Scale 並驗證儲存路徑

使用部署的常規重新啟動流程套用設定。例如,systemd 安裝可能使用 `npm run dev` systemctl restart ocis,而 Compose 部署則會重新建立或重新啟動受影響的服務容器。啟動後立即檢查日誌,查看是否有驗證、DNS、TLS、區域或權限錯誤。

終端機顯示 ownCloud Infinite Scale 服務重新啟動、服務狀態輸出以及用作連接性檢查的 S3 命令列儲存桶清單。
套用設定後,重新啟動相關的 Infinite Scale 服務,並驗證主機是否可以存取目標儲存桶並進行驗證。

使用 S3 提供者的 CLI 列出儲存桶資訊可以證明主機和憑證可以存取該儲存桶,但這本身並不能證明 Infinite Scale 正在正確寫入 blob。更完善的端對端測試方法是啟動 Infinite Scale,透過 ownCloud Web 介面上傳一個小文件,然後再次下載該文件,並查看服務日誌以查找錯誤。

如果您安裝的 Infinite Scale 版本包含 ownCloud 文件中記錄的 blobstore 維護命令,您也可以使用ocis storage-users blobstore check該命令。 ownCloud 將此指令描述為對已設定的 blobstore 執行上傳/下載/刪除的往返操作。有關特定版本的語法,請參閱官方 blobstore 驗證文件。

不要期望原始檔名會像普通的 S3 物件一樣顯示。

最容易產生的誤解之一是瀏覽儲存桶時,期望看到類似使用者資料夾樹的結構Documents/report.pdf。 Infinite Scale 將 S3 視為 blob 存儲,而非使用者導向的檔案系統。文件中記錄的s3ng鍵格式是基於空間 ID 和 blob ID,而人類可讀的命名空間則由元資料重建而成。

這意味著,即使儲存桶中的物件鍵看起來不熟悉,也不應該手動重新命名、重新組織或刪除它們。請透過 ownCloud 管理使用者文件。直接操作儲存桶可能會破壞元資料和 Blob 之間的關聯。

大檔案上傳:生產前請檢查多部分上傳檔案的大小

S3 使用分段上傳將大型物件拆分成多個部分。 ownCloud 文件STORAGE_USERS_S3NG_PUT_OBJECT_PART_SIZE用於控制分段大小。如果未提供明確值,則預設值為 16 MiB。

Amazon S3 允許單次多部分上傳最多包含 10,000 個檔案。假設每個檔案大小為 16 MiB,那麼在達到檔案數量限制之前,大約需要上傳 160 GiB 的檔案。如果您的用戶經常上傳更大的文件,建議您在正式上線前計算所需的文件大小,而不是等到大文件傳輸失敗後再進行調整。

權衡取捨顯而易見:更大的儲存分區可以支援更大的檔案大小,請求次數也更少,但同時也會改變記憶體、緩衝、重試和傳輸特性。 ownCloud 也指出,傳入的檔案資料在緩衝期間需要暫時存儲,因此容量規劃不能僅限於遠端儲存桶。

常見問題及首先應檢查的內容

症狀可能區域首先檢查
拒絕訪問憑證或儲存桶策略確認存取金鑰、私鑰、儲存桶 ARN 和所需操作。
未找到儲存桶儲存桶名稱、端點或區域請核實儲存桶名稱和提供者特定的端點/區域組合。
TLS 或憑證錯誤HTTPS 信任確認端點憑證在 Infinite Scale 主機/容器內有效且受信任。
小文件可以正常工作,但超大文件會失敗。多部分尺寸審核STORAGE_USERS_S3NG_PUT_OBJECT_PART_SIZE並遵守您的服務提供者的多部分限額規定。
僅恢復 S3 後檔案消失備份不完整將 POSIX 元資料和 S3 blob 恢復為一致的資料集。

同時備份 S3 blob 和 POSIX 元數據

這樣一來s3ng,儲存桶只是儲存狀態的一半。 ownCloud 的備份文件指出,分散式 S3 設定必須包含配置、系統資料、元資料和 Blob 物件。恢復文檔同樣要求這些資料集能夠以一致的方式恢復。

對於生產環境服務,請在同一份運作手冊中記錄元資料掛載點、儲存桶、憑證或角色、設定檔以及備份流程。在依賴設計方案之前,務必測試復原功能。相關的官方參考資料是ownCloud 備份指南和復原註意事項。

推薦起點

對於首次部署,請保持設計簡單:使用一個專用的 S3 儲存桶來儲存 blob,一個持久的 POSIX 元資料路徑,一個具有文檔化儲存桶權限的專用服務標識,使用 HTTPS 連接到物件儲存端點,並使用預設的多部分設置,除非您預期的檔案大小需要更改。

配置完成後,分別驗證三個層面:對儲存桶的網路和憑證存取、Infinite Scale 啟動時無儲存錯誤,以及透過 ownCloud 進行實際的上傳/下載。這些檢查通過後,再進行監控、備份、生命週期規則和效能調優。這種順序能大大簡化故障排除,因為每個測試都針對不同的問題,而不是將「S3 運作正常」視為一個非此即彼的結果。

留下評論

最佳 Windows 系統監控工具:6 款伺服器視覺工具

最佳 Windows 系統監控工具:6 款伺服器視覺工具

比較六款 Windows 系統監控工具,用於伺服器運作狀況、應用程式可見性和警報,並提供有關部署和許可的最新說明。

7 款最佳 WSUS 更新管理與故障排除工具

7 款最佳 WSUS 更新管理與故障排除工具

比較七款支援或補充 WSUS 的工具,從微軟的本機控制台和診斷工具到第三方修補程式發布和遠端部署工具。

7 款網路喚醒工具:2021 年清單中哪些仍可使用

7 款網路喚醒工具:2021 年清單中哪些仍可使用

從功能和可用性方面比較七款 Wake-on-LAN 工具,包括免費實用程式、網路管理套件以及 2021 年的精選產品(現已停用)。

9 款最佳 Ping 工具,用於測試延遲和掃描網絡

9 款最佳 Ping 工具,用於測試延遲和掃描網絡

比較九種 ping 工具,用於快速可及性檢查、子網路發現、TCP 測試和延遲監控,並提供關於哪種工具適合您的網路任務的指導。

適用於 Windows、Linux 和 macOS 的最佳 TFTP 伺服器

適用於 Windows、Linux 和 macOS 的最佳 TFTP 伺服器

比較 Windows、Linux 和 macOS 的最佳 TFTP 伺服器,包括 SolarWinds、Tftpd64、tftpd-hpa、atftpd、haneWIN 和 dnsmasq。

適用於桌面和 Web 資料庫的 5 款最佳 Microsoft Access 替代方案

適用於桌面和 Web 資料庫的 5 款最佳 Microsoft Access 替代方案

比較五種適用於桌面、SQLite、無程式碼和基於瀏覽器的資料庫工作的 Microsoft Access 替代方案,分析它們的優勢、限制和最佳適用場景。

開源監控工具與閉源監控工具的比較

開源監控工具與閉源監控工具的比較

從成本、支援、客製化、安全性和當前選項等方面比較開源和閉源監控工具,包括 Zabbix、Nagios、PRTG 等。

入口與出口:網路通訊中的差異是什麼?

入口與出口:網路通訊中的差異是什麼?

了解入口和出口如何描述傳入和傳出的流量,為什麼方向取決於網路邊界,以及如何監控頻寬和發現有風險的資料傳輸。

6 款最佳免費 Syslog 伺服器,可用於集中式日誌記錄

6 款最佳免費 Syslog 伺服器,可用於集中式日誌記錄

比較六款適用於 Windows 和 Linux 的免費 syslog 伺服器和收集器,包括 GUI 工具、開源選項、搜尋、警報和安全傳輸。

什麼是 IIS?微軟的 Windows Web 伺服器及其替代方案

什麼是 IIS?微軟的 Windows Web 伺服器及其替代方案

了解 Microsoft IIS 的功能、其請求管道和應用程式集區的工作原理,以及何時 Apache、NGINX 或 Caddy 可能更適合您的 Web 伺服器需求。