取得容器 ACL

Get Container ACL 作業可取得指定容器的權限。 這些權限指出是否可以公開存取容器資料。

自 2009-09-19 版起,容器許可權會提供下列選項來管理容器存取:

  • 完整公用讀取許可權:容器和 Blob 數據可以透過匿名要求讀取。 用戶端可以透過匿名要求列舉容器內的 Blob,但無法列舉記憶體帳戶內的容器。

  • 僅限 Blob 的公用讀取許可權:此容器內的 Blob 數據可以透過匿名要求讀取,但無法使用容器數據。 客戶端無法透過匿名要求列舉容器內的 Blob。

  • 沒有公用讀取許可權:帳戶擁有者只能讀取容器和 Blob 數據。

Get Container ACL 也會傳回容器上指定之任何容器層級存取原則的詳細數據,這些原則可能與共用存取簽章搭配使用。 如需詳細資訊,請參閱定義預存存取原則

容器的所有公開存取皆為匿名,即便是透過共用存取簽章存取亦然。

要求

Get Container ACL 要求的建構如下。 建議您使用 HTTPS。 以您的記憶體帳戶名稱取代 myaccount

方法 要求 URI HTTP 版本
GET/HEAD https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

模擬記憶體服務要求

當您對模擬記憶體服務提出要求時,請將模擬器主機名和 Blob 記憶體埠指定為 127.0.0.1:10000,後面接著仿真的記憶體帳戶名稱:

方法 要求 URI HTTP 版本
GET/HEAD http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl HTTP/1.1

如需詳細資訊,請參閱使用 Azure 模擬器進行本機 Azure 儲存體開發

URI 參數

您可以在要求 URI 上指定下列其他參數:

參數 描述
timeout 選擇性。 timeout 參數以秒為單位。 如需詳細資訊,請參閱 設定 Blob 記憶體作業的逾時

要求錯誤碼

下表說明必要的和選擇性要求標頭:

要求標頭 描述
Authorization 必要。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
Datex-ms-date 必要。 指定要求的「國際標準時間」(UTC)。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
x-ms-lease-id: <ID> 選擇性版本 2012-02-12 和更新版本。 如果已指定, Get Container ACL 只有在容器的租用作用中且符合此標識符時,才會成功。 如果沒有作用中的租用或識別碼不相符, 412 (Precondition Failed) 則會傳回 。
x-ms-version 所有已授權要求都需要。 指定用於這個要求的作業版本。 如需詳細資訊,請參閱 Azure 儲存體服務的版本
x-ms-client-request-id 選擇性。 提供客戶端產生的不透明值,其中包含設定記錄時記錄的 1 kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱監視 Azure Blob 儲存體

要求本文

無。

回應

回應包括 HTTP 狀態碼、一組回應標頭和回應主體。

狀態碼

成功的作業會傳回狀態碼 200 (OK)。

如需狀態代碼的相關信息,請參閱 狀態和錯誤碼

回應錯誤碼

這項作業的回應包括下列標頭。 回應也可能包括其他標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協議規格

回應標頭 描述
x-ms-blob-public-access 指出是否可以公開存取容器中的資料,以及存取的層級。 可能的值包括:

- container:表示容器和 Blob 數據的完整公用讀取許可權。 用戶端可以透過匿名要求列舉容器內的 Blob,但無法列舉記憶體帳戶內的容器。
- blob: 表示 Blob 的公用讀取許可權。 此容器內的 Blob 資料可以透過匿名要求讀取,但無法使用容器數據。 客戶端無法透過匿名要求列舉容器內的 Blob。
- true: 僅限 2016-05-31 之前的版本。 指出容器已標示為使用 2009-09-19 之前的版本進行完整公用讀取存取。 自 2016-05-31 版起,此值會傳回為 。container

如果回應中未傳回此標頭,則容器是帳戶擁有者的私人。
ETag 容器的實體標記。 如果要求版本是 2011-08-18 或更新版本,ETag 值會以引號括住。
Last-Modified 傳回上次修改容器的日期和時間。 日期格式會依照 RFC 1123。 如需詳細資訊,請參閱 以錯誤碼表示日期/時間值

修改容器或其屬性或中繼資料的任何作業,都會更新上次修改時間。 Blob 上的作業不會影響容器上次修改的時間。
x-ms-request-id 可唯一識別提出的要求,並可用來對要求進行疑難解答。 如需詳細資訊,請參閱 針對 API 作業進行疑難解答
x-ms-version 指出用來執行要求的服務版本。 針對針對 2009-09-19 版和更新版本提出的要求,會傳回此標頭。
Date 服務所產生的 UTC 日期/時間值,表示起始響應的時間。
x-ms-client-request-id 可用來針對要求及其對應的回應進行疑難解答。 如果此標頭存在於要求中,且值包含不超過 1,024 個可見的 ASCII 字元,則此標頭的值等於標頭的值 x-ms-client-request-idx-ms-client-request-id如果要求中沒有標頭,回應中就不會有此標頭。

回應本文

如果已為容器指定容器層級存取原則,Get Container ACL 會在回應主體中傳回簽署的識別碼和存取原則。

<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>  
    <Id>unique-value</Id>  
    <AccessPolicy>  
      <Start>start-time</Start>  
      <Expiry>expiry-time</Expiry>  
      <Permission>abbreviated-permission-list</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

範例回應

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-blob-public-access: container  
Date: Sun, 25 Sep 2011 20:28:22 GMT  
ETag: "0x8CAFB82EFF70C46"  
Last-Modified: Sun, 25 Sep 2011 19:42:18 GMT  
x-ms-version: 2011-08-18  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2009-09-28T08:49:37.0000000Z</Start>  
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>  
      <Permission>rwd</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

授權

Get Container ACL 作業僅支援 共用金鑰授權

備註

除非帳戶擁有者已指定容器內的 Blob 可供公用讀取存取,或已透過共用存取簽章在容器中提供資源,否則帳戶擁有者只能讀取特定記憶體帳戶中的數據。

計費

定價要求可能源自使用 Blob 記憶體 API 的用戶端,無論是直接透過 Blob 記憶體 REST API,還是來自 Azure 記憶體用戶端連結庫。 這些要求會累算每個交易的費用。 交易類型會影響帳戶的收費方式。 例如,讀取交易會累算到與寫入交易不同的計費類別。 下表顯示根據記憶體帳戶類型的要求計費類別 Get Container ACL

作業 儲存體帳戶類型 計費類別
取得容器 ACL 進階區塊 Blob
標準一般用途 v2
其他作業
取得容器 ACL 標準一般用途 v1 讀取作業

若要瞭解指定計費類別的定價,請參閱 Azure Blob 儲存體 定價

另請參閱

限制容器和 Blob 的存取
定義預存的存取原則
Set Container ACL (設定容器 ACL)
授權對 Azure 記憶體的要求
狀態和錯誤碼
Blob 記憶體錯誤碼