HBS3 支援 Virtual-hosted 風格的 S3 嗎?

我正在嘗試在 HBS3 上設置阿里雲儲存,並使用「Amazon S3」儲存類型。我發現 HBS3 預設是用 path style(路徑樣式),而不是 virtual-hosted style(虛擬主機樣式),而且我找不到任何選項可以更改這個設定。

如果我的 endpoint 是「s3.example.com」,bucket 名稱是「my-bucket」,我期望應該要訪問「my-bucket.s3.example.com」,但 HBS3 只是嘗試訪問「s3.example.com/my-bucket」,而這在阿里雲是不被支援的。

如果用原生 S3 SDK,我會設「use path style = false」之類的選項,但在 HBS3 裡面要怎麼設?

至於在 HBS3 上用阿里雲儲存類型,我發現必須給帳號層級的權限才能建立儲存空間(因為它好像會去列出 bucket 之類的動作)。我沒辦法只給 bucket 層級的存取權限,所以我覺得我不想用這種方式。

嗨,

感謝你的回報——你的分析非常到位,我們也想確認一下我們這邊的情況:

  1. HBS 3 的阿里雲儲存類型已經使用了 virtual-hosted style 的存取方式,所以在地址處理上沒問題。不過正如你發現的,目前在建立儲存空間時會呼叫 ListBuckets,而這需要帳戶層級的權限。

  2. Amazon S3/相容 S3 的儲存類型支援「使用特定 Bucket」(所以 bucket 層級的認證可用),但目前僅發送 path-style 請求——而阿里雲 OSS 會拒絕這類請求。

因此,每一個選項目前都受限於不同的問題。我們已討論過,並計劃針對兩點改進:

  • 為阿里雲儲存類型新增一個 「使用特定 Bucket」 選項,這樣就不再需要 ListBuckets,且能支援 bucket 權限定的認證。

  • 為相容 S3 的儲存類型新增 path-style/virtual-hosted style 選項,讓它能相容於只接受 virtual-hosted 請求的雲端服務商。

感謝您的協助!這兩項改進都會非常有幫助。

我認為阿里雲 (Alibaba Cloud) 的「僅限使用特定 bucket」功能會更直接解決我的問題。不過,虛擬主機風格 (virtual-hosted-style) 的支援則是一個更通用的功能,能讓我們更好地使用一般的 S3 相容服務商。