設定共用 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 儲存體提出要求。 |
Date 或 x-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 個字元。
Start
和 Expiry
欄位必須以 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 檔案儲存體版本。 |
Date 或 x-ms-date |
UTC 日期/時間值,指出服務傳送回應的時間。 |
x-ms-client-request-id |
可用來針對要求和對應的回應進行疑難排解。 如果此標頭存在於要求中,且此值最多為 1,024 個可見的 ASCII 字元,則此標頭的值等於標頭的值 x-ms-client-request-id 。
x-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 (禁止) ,直到存取原則變成作用中為止。