設定共用 ACL

Set Share ACL 作業會設定預存存取原則,以搭配共用存取簽章使用。 如需設定存取原則的詳細資訊,請參閱 使用共用存取簽章授與 Azure 儲存體資源的有限存取權

通訊協定可用性

已啟用檔案共用通訊協定 可用
SMB 是
NFS 否

要求

您可以建構 Set Share ACL 要求,如下所示。 我們建議使用 HTTPS。 以儲存體帳戶的名稱取代 myaccount

方法 要求 URI HTTP 版本
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1

URI 參數

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

參數 描述
timeout 選擇性。 timeout 參數以秒為單位。 如需詳細資訊,請參閱設定Azure 檔案儲存體作業的逾時。

要求標頭

下表描述必要和選擇性的要求標頭:

要求標頭 描述
Authorization 必要。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
Datex-ms-date 必要。 指定要求的「國際標準時間」(UTC)。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
x-ms-version 所有已授權要求都需要。 指定用於這個要求的作業版本。 這項作業僅適用于 2015-02-21 版和更新版本。

如需詳細資訊,請參閱 Azure 儲存體服務的版本
x-ms-client-request-id 選擇性。 提供用戶端產生的不透明值,其中包含設定記錄時記錄在儲存體分析記錄中的 1 kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱監視Azure Blob 儲存體
x-ms-lease-id:<ID> 如果目的地檔案共用有作用中的租用,則為必要專案。 適用于 2020-02-10 版和更新版本。 如果要求不包含租用識別碼或無效,作業會失敗,狀態碼為 412 (前置條件失敗) 。

如果指定此標頭,且目的地檔案共用目前沒有作用中租用,作業就會失敗,狀態碼為 412 (前置條件失敗) 。

要求本文

若要指定儲存的存取原則,請在要求主體中,提供 Set Share ACL 作業的唯一識別碼和存取原則。

元素 SignedIdentifier 包含唯一識別碼,如 專案中所 Id 指定。 SignedIdentifier 也包含存取原則的詳細資料,如 元素中所 AccessPolicy 指定。 唯一識別碼的長度上限為 64 個字元。

StartExpiry 欄位必須以 UTC 時間表示,而且必須遵守有效的 ISO 8061 格式。 支援的 ISO 8061 格式包括:

  • YYYY-MM-DD
  • YYYY-MM-DDThh:mmTZD
  • YYYY-MM-DDThh:mm:ssTZD
  • YYYY-MM-DDThh:mm:ss.fffffffTZD

就這些格式的日期部分而言,YYYY 以四位數表示年份,MM 以兩位數表示月份,而 DD 以兩位數表示日期。 就時間部分而言,hh 以 24 小時標記法表示小時,mm 以兩位數表示分鐘,ss 以兩位數表示秒,而 fffffff 以七位數表示毫秒。 時間指示項 T 會分隔字串的日期和時間部分。 時區指示項 TZD 會指定時區。

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

範例要求

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
x-ms-date: <date>  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2015-07-01T08:49:37.0000000Z</Start>  
      <Expiry>2015-07-02T08:49:37.0000000Z</Expiry>  
      <Permission>rwd</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  

回應

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

狀態碼

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

回應標頭

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

回應標頭 描述
ETag 傳回上次修改容器的日期和時間。 日期格式會依照 RFC 1123。 如需詳細資訊,請參閱 標頭中的日期/時間值表示
Last-Modified 修改共用或其屬性或中繼資料的任何作業都會更新上次修改的時間,包括設定檔案的許可權。 檔案上的作業不會影響共用的上次修改時間。
x-ms-request-id 可唯一識別提出的要求,並可用於對要求進行疑難排解。 如需詳細資訊,請參閱 針對 API 作業進行疑難排解
x-ms-version 指出用來執行要求的Azure 檔案儲存體版本。
Datex-ms-date UTC 日期/時間值,指出服務傳送回應的時間。
x-ms-client-request-id 可用來針對要求和對應的回應進行疑難排解。 如果此標頭存在於要求中,且此值最多為 1,024 個可見的 ASCII 字元,則此標頭的值等於標頭的值 x-ms-client-request-idx-ms-client-request-id如果要求中沒有標頭,此標頭將不會出現在回應中。

範例回應

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: <date>  
ETag: "0x8CB171613397EAB"  
Last-Modified: <date>  
x-ms-version: 2015-02-21  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

授權

只有帳戶擁有者可以呼叫這項作業。

備註

除非下列其中一個條件成立,否則只有帳戶擁有者可以存取特定共用中的資源:

  • 擁有者已指定共用資源可供公用存取,方法是設定共用的許可權。
  • 擁有者已針對共用內的資源發出共用存取簽章。

當您設定容器的權限時,會取代現有的權限。 若要更新容器的許可權,請呼叫 Get Share ACL 以擷取與容器相關聯的所有存取原則。 修改您想要變更的存取原則,然後使用一組完整的資料呼叫 Set Share ACL 來執行更新。

建立共用層級存取原則

預存存取原則可以指定其相關聯共用存取簽章的開始時間、到期時間和許可權。 視您想要控制共用或檔案資源的存取方式而定,您可以:

  • 在預存存取原則內指定所有這些參數,並從共用存取簽章的 URL 中省略這些參數。 這麼做可讓您修改相關聯的簽章行為,或隨時撤銷。
  • 在預存存取原則內指定一或多個存取原則參數,並在 URL 上指定其他參數。
  • 在 URL 上指定所有參數。 在此情況下,您可以使用預存存取原則來撤銷簽章,但不能修改其行為。

如需設定存取原則的詳細資訊,請參閱 使用共用存取簽章授與 Azure 儲存體資源的有限存取權

共用存取簽章和預存存取原則必須包含授權簽章所需的所有欄位。 如果遺漏任何必要的欄位,要求將會失敗。 同樣地,如果同時在共用存取簽章 URL 和預存存取原則中指定某個欄位,則要求會失敗,並顯示狀態碼 400 (不正確的要求)。 如需組成共用存取簽章之欄位的詳細資訊,請參閱 使用共用存取簽章

您可以隨時為共用設定五個不同的存取原則。 如果在要求本文中傳遞五個以上的存取原則,服務會傳回狀態碼 400 (「不正確的要求」) 。

共用存取簽章可以在共用或檔案上發出,不論容器資料是否可供匿名讀取存取。 共用存取簽章可讓您更充分掌控資源可存取的方式、時機和物件。

您無法設定或擷取共用快照集的存取原則。 如果您嘗試設定存取原則,服務會傳回狀態碼 400 (InvalidQueryParameterValue) 。

注意

當您在容器上建立預存存取原則時,最多可能需要 30 秒才會生效。 在此間隔期間,與預存存取原則相關聯的共用存取簽章將會失敗,狀態碼為 403 (禁止) ,直到存取原則變成作用中為止。

另請參閱

FileShare 資源的作業 (Azure 檔案儲存體)