容許公用存取

有時,資料是要共用的。 儲存區可能會針對 Web 應用程式及 Content Delivery Network 所使用的學術及私人研究或映像檔儲存庫,保留開放式資料集。 讓您可以使用公用存取群組來存取這些儲存區。

有三個 IAM 角色可用於對儲存區進行公用存取: Administrator、ContentReader 及 ObjectReader。 兩者之間的差異是 Administrator 與 ContentReader 可以列出儲存區中的物件,這對於除了讀取物件之外還需要易於列出的應用程式 (例如,Web 使用者介面) 非常有用。 如需相關資訊,請參閱 IAM 參考文件。

如果外部身分隔離 (EII) 設定為 Limited,公開存取會失敗,因為匿名請求沒有帳號 ID,無法符合身分比對的要求。

使用主控台來設定公用存取

首先,請確定您有一個儲存區。 否則,請遵循入門指導教學來熟悉主控台。

啟用公用存取權

在為儲存桶啟用公開存取權限之前,必須先在帳戶層級啟用「公開存取」群組。 只有帳戶擁有者或具備 IAM 存取群組管理員角色的使用者才能變更此設定。 若要驗證或啟用此設定,請前往 「管理」>「存取權限 (IAM)」>「設定」,並確認 公眾查閱 已設定為 已啟用。 若此帳戶層級設定已停用,則下文所述的儲存桶層級控制將不生效。

  1. 從 IBM Cloud 主控台儀表板中,選取儲存空間以檢視資源清單。
  2. 接下來,從儲存空間功能表中選取具有儲存區的服務實例。 這會將您帶往「Object Storage 主控台」。
  3. 選擇您要公開存取的儲存區。 請注意,此政策會讓任何擁有適當 URL 權限的人士,皆可下載_儲存桶中的所有物件_。
  4. 從儲存桶的導覽標籤中選取「權限」標籤。
  5. 捲動至「公開存取」區段,然後按一下「建立存取政策」。
  6. 在讀取警告之後,請選擇啟用。
  7. 現在,此儲存區中的所有物件都可供公開存取!

停用公用存取權

  1. 從 IBM Cloud 主控台的任何位置,選取管理功能表,以及存取 (IAM)。
  2. 從導覽功能表中,選取存取群組。
  3. 選取公用存取,以查看目前使用中的所有公用存取原則清單。
  4. 尋找對應於您要回到強制存取控制的儲存區的原則。
  5. 從原則項目最右邊的動作清單中,選擇移除。
  6. 確認對話框,現在即會從儲存區移除原則。

容許對個別物件的公用存取

若要讓物件可透過 REST API 公開存取,可以在要求中併入 x-amz-acl: public-read 標頭。 設定此標頭會略過所有 IAM 原則檢查,並容許未經鑑別的 HEAD 及 GET 要求。 如需端點的相關資訊,請參閱端點及儲存空間位置。

此外,HMAC 認證讓它能夠容許使用預先簽署 URL 的暫時公用存取。

上傳公用物件

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}" \
     -H "x-amz-acl: public-read" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: text/plain; charset=utf-8" \
     -d "{object-contents}"

容許對現有物件的公用存取

使用沒有有效負載及 ?acl 標頭的查詢參數 x-amz-acl: public-read 時,容許對物件的公用存取,而不需要改寫資料。

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
     -H "x-amz-acl: public-read" \
     -H "Authorization: Bearer {token}"

再次將公用物件設為專用

使用沒有有效負載及空的 ?acl 標頭的查詢參數 x-amz-acl: 時,會撤銷對物件的公用存取,而不需要改寫資料。

curl -X "PUT" "https://{endpoint}/{bucket-name}/{object-name}?acl" \
     -H "Authorization: Bearer {token}" \
     -H "x-amz-acl:"

靜態網站

雖然 IBM Cloud Object Storage 不支援自動靜態網站託管,但您可以手動設定一個網頁伺服器,並利用它來提供儲存於儲存桶中且可供公眾存取的內容。 如需相關資訊,請參閱 靜態網站選項概觀。