跳到主要內容
AnyStorage
免費下載

Hetzner 物件儲存

Hetzner 物件儲存用戶端:連線、掛載與排錯

Hetzner Object Storage 透過三個端點提供 S3 相容介面。桌面用戶端怎麼連、儲存桶怎麼掛成磁碟,以及官方文件明確列為不支援的功能。

整理 Hetzner Object Storage 的端點、憑證、配額與不支援的 S3 功能,並說明 GUI 用戶端如何連線、如何把儲存桶掛成本機磁碟。

Hetzner 物件儲存用戶端,Hetzner S3 用戶端,Hetzner 物件儲存端點

Hetzner Object Storage 是 S3 相容、便宜、放在歐盟境內的服務,所以歐洲的專案常常在有人挑桌面工具之前就先用上了。本頁講用戶端需要的設定、會影響工作方式的配額,以及那些「Hetzner 不是 Amazon」所導致的錯誤。所有內容都在 2026 年 9 月於 docs.hetzner.comhetzner.com 上查核過。工具層面的橫向比較在 S3 GUI 用戶端總覽

三個端點,以及搭配的定址方式

區域一共三個,各有自己的端點主機名稱:

區域端點官方範例使用的 region 字串
德國 Falkensteinfsn1.your-objectstorage.comfsn1
德國 Nurembergnbg1.your-objectstorage.comnbg1
芬蘭 Helsinkihel1.your-objectstorage.comhel1

物件的公開位址是 https://<bucket-name>.<location>.your-objectstorage.com/<file-name>——桶名是子網域,不是路徑的一段。這就是 virtual-hosted 定址,而 Hetzner 自己的工具範例也這麼設:MinIO 用戶端的設定寫 --path 'off',AWS CLI 那一頁在講預簽章 URL 時給出 addressing_style = virtual。所以用戶端若有「path-style」或「force path style」開關,在 Hetzner 上請保持關閉。這和幾乎必須開 path-style 的 MinIO 剛好相反,那一側寫在 MinIO 用戶端

sh

mc alias set hetzner https://fsn1.your-objectstorage.com <ACCESS_KEY> <SECRET_KEY> --api 's3v4' --path 'off'
mc ls hetzner
aws s3 ls --endpoint-url https://fsn1.your-objectstorage.com

有專門文件的命令列工具是 mcs3cmds5cmdrclone 與 AWS CLI,其 FAQ 寫著「Yes you can manage your Buckets via AWS CLI und AWS SDKs」。認證走 AWS Signature version 4,儲存類別只有 Standard 一種。

從主控台取出金鑰

憑證是按專案而不是按帳號發的。在 Hetzner Console 裡打開專案,左側選單 Security,上方選單 S3 Credentials,按 Generate credentials,填一段說明,再把兩個值複製出來。

金鑰要當場保存。文件寫得很乾脆:「It is not possible to view the secret key again once the window has been closed!」而且因為金鑰綁定專案,「It is not possible to share S3 credentials across multiple projects unless you set up appropriate bucket policies」。想讓一個用戶端同時看到兩個專案的儲存桶,就得建兩個連線,或用儲存桶政策放行。

會改變工作方式的配額

Hetzner Object Storage 的配額與價格(2026 年 9 月查核)
項目數值
儲存桶數量所有專案合計最多 100 個
每個桶的物件數最多 50,000,000
每個桶的容量最多 100 TB
物件大小單一物件最多 5 TB,單次 PUT 最多 5 GB
計費最小物件大小64 kB
基礎價格每月 4.99 歐元 / 5.99 美元,含 1 TB 儲存與 1 TB 出站流量
超出配額儲存每 TB·小時 0.0067 歐元,出站流量每 TB 1.00 歐元
免費流量入站、eu-central 網路區內部流量,以及 S3 操作

其中兩條各值一句話。64 kB 下限意味著塞滿縮圖或小 JSON 的桶,會按每個物件 64 kB 計費——上傳一百萬個 2 kB 檔案的用戶端,實際買的是 64 GB。另一條是計費從「存在」開始而不是從位元組開始:「You are charged for every hour you have at least one active Bucket, even if it's empty.」一個忘了刪的空測試桶放一個月,就是整月的基礎費。

單次 PUT 5 GB 的上限直接決定要選什麼工具。超過就必須走分段上傳,正經的用戶端都會自動處理——這也是為什麼老老實實 PUT 一支 20 GB 影片的腳本會失敗,而 GUI 用戶端不會。

桶名比 Amazon 更嚴格

因為桶名要當 DNS 標籤,命名規則比 S3 更緊,而且事後改不了。允許的是「the alphabet (a-z), digits (0-9), minus sign (-)」,同時「No period (.), No blank or space characters, No upper case characters」;首字元必須是字母或數字,末字元不能是連字號,長度 3 到 63,要符合 RFC 1123,且不能寫成 IP 位址的形狀。禁止句點這一條比 Amazon 更嚴。另外:「it is NOT possible to change the name once the Bucket is created.」

沒有實作的功能

相容性的說法很坦白:「Our Object Storage API offers basic compatibility with the standard Amazon S3 actions and data types.」版本控制、Object Lock(法律保留與保留期間)、CORS 政策、生命週期政策、SSE-C 都有各自的操作文件。而不支援清單裡有些項目會讓從 S3 搬過來的人意外:桶層級的 WebsiteNotificationsAccelerateAnalyticsIntelligent TieringInventoryLoggingMetricsOwnership ControlsReplicationTaggingRequest-Payment 全部列為不支援,物件層級的 RestoreSelect ContentTorrentGetObjectAttributes 也是。建立儲存桶只接受「Limited headers and XML body elements only」,加密僅 SSE-C,CopyObject 帶著「Source and destination must be identical」的註記。

另一個缺口是自訂網域:「Currently, it is not possible to assign a custom domain name to a Bucket.」官方給的繞法是 S3 Proxy,同時警告它「makes the Bucket data publicly accessible via your own domain even if the Bucket visibility is set to private」——所以前面要嘛加一層基本驗證,要嘛乾脆改發預簽章連結。

從桌面用戶端連線

Hetzner 只為兩款圖形用戶端寫了文件。Cyberduck 最省事,因為它自己的偏好設定裡就內建 Hetzner Object Storage 設定檔:啟用後選區域,伺服器與 URL 就自動填好,你只需要填 access key 與 secret key。WinSCP 也有單獨一頁。

其他用戶端需要四個值:上表的端點 URL、對應的 region 字串、access key、secret key,並把 path-style 關掉。AnyStorage 0.2.25 裡對應的是 S3 連線類型,自訂端點 URL、自訂 region 與 path-style 開關都是可編輯欄位,所以不需要為 Hetzner 出專用版本。它可在 macOS 11+、Windows 10+ 與 Ubuntu 20.04+ 執行,憑證加密保存在本機,不需要註冊帳號。免費版兩個儲存連線並允許商業使用;二十多種連線類型、搜尋、預覽與批次操作屬於 Pro。平台細節在 Windows 版Linux 版

把儲存桶掛成一顆磁碟

Hetzner 不提供掛載工具,所以選擇還是那兩條:需要 FUSE(macOS 與 Linux)或 WinFsp(Windows)的 rclone mount,或者用一個把儲存桶以系統本來就懂的協定重新提供出來的用戶端。AnyStorage 走後者——在 http://127.0.0.1:3211 上跑一個 WebDAV 伺服器,由 Finder、檔案總管、GNOME Files、Dolphin 或 davfs2 掛載,全程沒有核心驅動程式,每個已連線的儲存都是同一個掛載點下的資料夾。免費版這個掛載是唯讀的。逐步操作見把 S3 儲存桶對應為網路磁碟機,與 FUSE 的比較見 rclone mount 替代方案

其實是設定問題的錯誤

  • `SignatureDoesNotMatch` 通常是 region 字串與端點不一致,或金鑰從主控台複製時被截斷。同一個故障從頭走到尾的版本在 MinIO 的 SignatureDoesNotMatch
  • 明明存在的桶回報 `NoSuchBucket`,多半是 path-style 的用戶端在打 virtual-hosted 端點,或用了另一個專案的金鑰。
  • 瀏覽器上傳被 CORS 擋住是儲存桶設定問題而非用戶端問題,機制與 Amazon 一致,見 S3 CORS 錯誤
  • `EntityTooLarge` 就是單次 PUT 5 GB 的上限,換一個會做分段上傳的用戶端。

常見問題

Hetzner Object Storage 的端點是什麼?

依儲存桶所在區域選 fsn1.your-objectstorage.comnbg1.your-objectstorage.comhel1.your-objectstorage.com,走 HTTPS。用戶端要求填 region 時,用同樣的短字串 fsn1nbg1hel1

需要開 path-style 嗎?

不需要。物件透過 https://<bucket>.<location>.your-objectstorage.com/<key> 提供,官方 MinIO 用戶端範例是 --path 'off',AWS CLI 範例建議 addressing_style = virtual。任何 force path style 選項都請關閉。

有官方的桌面用戶端嗎?

沒有。官方改為替第三方工具撰寫文件:命令列是 mcs3cmds5cmdrclone 與 AWS CLI,圖形用戶端是 Cyberduck 與 WinSCP。Cyberduck 內建「Hetzner Object Storage」設定檔,是最快的入口。

相較於 Amazon 少了哪些 S3 功能?

官方的說法是「basic compatibility」。跨區複寫、標籤、靜態網站託管、事件通知、傳輸加速、清單、記錄、指標、所有權控制、物件還原、Select Content 與 GetObjectAttributes 都列為不支援;加密僅 SSE-C;儲存桶也無法綁自訂網域。

為什麼帳單比我存的位元組還多?

兩個原因:小於 64 kB 的物件按 64 kB 計費,而基礎費按「至少存在一個儲存桶」的小時數收取,空桶也算。用完的測試桶請直接刪除,而不是只清空。