Path - Update
附加數據 |排清數據 |設定屬性 |設定 存取控制
上傳要附加至檔案的數據、排清 (寫入) 先前上傳的數據至檔案、設定檔案或目錄的屬性,或設定檔案或目錄的訪問控制。 數據只能附加至檔案。 不支援使用多個用戶端對相同檔案的並行寫入。 此作業支援條件式 HTTP 要求。 如需詳細資訊,請參閱指定 Blob 服務作業的條件式標頭。
PATCH https://{accountName}.{dnsSuffix}/{filesystem}/{path}?action={action}
PATCH https://{accountName}.{dnsSuffix}/{filesystem}/{path}?action={action}&position={position}&retainUncommittedData={retainUncommittedData}&close={close}&mode={mode}&maxRecords={maxRecords}&forceFlag={forceFlag}&continuation={continuation}&flush={flush}&timeout={timeout}
URI 參數
名稱 | 位於 | 必要 | 類型 | Description |
---|---|---|---|---|
account
|
path | True |
string |
Azure 記憶體帳戶名稱。 |
dns
|
path | True |
string |
Azure Data Lake Storage 端點的 DNS 後綴。 |
filesystem
|
path | True |
string |
文件系統標識碼。 Regex 模式: |
path
|
path | True |
string |
檔案或目錄路徑。 |
action
|
query | True |
動作必須是 「append」,才能上傳要附加至檔案的數據、“flush” 以排清先前上傳的數據到檔案、“setProperties” 來設定檔案或目錄的屬性,或 “setAccessControl” 來設定檔案或目錄的擁有者、群組、許可權或訪問控制清單,或以遞歸方式設定目錄的訪問控制清單。 請注意,必須為帳戶啟用階層命名空間,才能使用訪問控制。 另請注意,存取控制 清單 (ACL) 包含擁有者、擁有群組和其他許可權的許可權,因此 x-ms-permissions 和 x-ms-acl 要求標頭互斥。 |
|
close
|
query |
boolean |
Azure 記憶體事件可讓應用程式在檔案變更時接收通知。 啟用 Azure 記憶體事件時,會引發檔案變更事件。 此事件具有 屬性,指出這是最終變更,以區別中繼排清與檔案數據流之間的差異,以及文件數據流的最終關閉。 只有在動作為「排清」且啟用變更通知時,關閉查詢參數才有效。 如果 close 的值為 「true」,且排清作業順利完成,則服務會引發檔案變更通知,其屬性表示這是檔案數據流 (關閉) 的最終更新。 如果為 「false」,則會引發變更通知,指出檔案已變更。 預設值為 false。 Hadoop ABFS 驅動程式將此查詢參數設定為 true,表示檔案數據流已關閉。」 |
|
continuation
|
query |
string |
選擇性且僅適用於 「setAccessControlRecursive」 作業。 每個調用處理的路徑數目有限。 如果要處理的路徑數目超過此限制,則會在響應標頭 x-ms-continuation 中傳回接續令牌。 在回應中傳回接續令牌時,它必須經過百分比編碼,並在後續的 setAccessControlRecursive 作業調用中指定。 |
|
flush
|
query |
boolean |
僅適用於附加呼叫。 此參數可讓呼叫端在附加呼叫期間排清。 默認值為 「false」,如果為 「true」,則會使用附加呼叫排清數據。 請注意,使用 flush=true 時,不支援下列標頭 - “x-ms-cache-control”、“x-ms-content-encoding”、“x-ms-content-type”、“x-ms-content-language”、“x-ms-content-md5”、“x-ms-content-disposition”。 若要在排清期間設定這些標頭,請使用 action=flush |
|
force
|
query |
boolean |
選擇性且僅適用於 「setAccessControlRecursive」 作業。 如果這是 「false」 作業,會在遇到使用者錯誤時快速終止, (4XX) 。 如果為 「true」,API 將會忽略使用者錯誤,並在目錄的其他子實體上繼續進行作業。 使用者錯誤的詳細狀態將會在任一案例的回應中傳回。 只有在發生使用者錯誤時 forceFlag 為 「true」 時,才會傳回接續令牌。 forceFlag 的預設值為 false。 |
|
max
|
query |
integer int32 |
選擇性且僅適用於 「setAccessControlRecursive」 作業。 它會指定將套用 acl 變更的檔案或目錄數目上限。 如果省略或大於 2,000,要求將處理最多 2,000 個專案 |
|
mode
|
query |
string |
選擇性。 “setAccessControlRecursive” 作業的有效和必要專案。 模式 「set」 會設定檔案和目錄上的 POSIX 訪問控制許可權,“modify” 會修改檔案和目錄上既有的一或多個 POSIX 訪問控制許可權,“remove” 會移除檔案和目錄上先前存在的一或多個 POSIX 訪問控制許可權 |
|
position
|
query |
integer int64 |
此參數可讓呼叫端平行上傳數據,並控制數據附加至檔案的順序。 上傳數據以附加至檔案,以及排清先前上傳的數據至檔案時,這是必要的。 此值必須是要附加數據的位置。 上傳的數據不會立即排清或寫入檔案。 若要排清,先前上傳的數據必須連續,必須指定 position 參數,且在寫入所有數據之後等於檔案的長度,而且要求中不得包含要求實體主體。 |
|
retain
|
query |
boolean |
僅適用於排清作業。 如果為 「true」,則排清作業完成後會保留未認可的數據;否則,排清作業之後會刪除未認可的數據。 預設值為 false。 排清成功時,位移的數據會寫入檔案中小於指定位置的數據,但這個選擇性參數允許在排清位置之後保留數據,以供日後排清作業使用。 |
|
timeout
|
query |
integer int32 |
選擇性的作業逾時值,以秒為單位。 此期間會從服務收到要求時開始。 如果逾時值在作業完成之前經過,作業就會失敗。 |
要求標頭
Media Types: "application/octet-stream", "text/plain"
名稱 | 必要 | 類型 | Description |
---|---|---|---|
Content-Length |
integer int64 |
「附加數據」和「排清數據」的必要專案。 「排清數據」必須是0。 必須是「附加數據」的位元組要求內容的長度。 |
|
Content-MD5 |
string |
選擇性。 要求內容的 MD5 雜湊。 此標頭在 「Append」 和 「Flush」 作業上有效。 在傳輸期間,此雜湊可用來驗證要求內容的完整性。 指定此標頭,儲存體服務會比較已到達的內容雜湊與此標頭值。 如果這兩個雜湊不相符,作業會失敗,並顯示錯誤碼 400 (不正確的要求)。 請注意,這個 MD5 哈希不會與檔案一起儲存。 此標頭與要求內容相關聯,而不是與檔案本身的預存內容相關聯。 |
|
x-ms-lease-id |
string |
如果有作用中的租用,則必須指定租用標識符。 “setAccessControlRecursive” 作業無效。 Regex 模式: |
|
x-ms-cache-control |
string |
選擇性且僅適用於排清和設定屬性作業。 服務會儲存此值,並將其包含在「讀取檔案」作業的「快取控制」回應標頭中。 |
|
x-ms-content-type |
string |
選擇性且僅適用於排清和設定屬性作業。 服務會儲存此值,並將其包含在「讀取檔案」作業的「內容類型」回應標頭中。 |
|
x-ms-content-disposition |
string |
選擇性且僅適用於排清和設定屬性作業。 服務會儲存此值,並將其包含在「讀取檔案」作業的「內容處置」響應標頭中。 |
|
x-ms-content-encoding |
string |
選擇性且僅適用於排清和設定屬性作業。 服務會儲存此值,並將其包含在「讀取檔案」作業的「內容編碼」回應標頭中。 |
|
x-ms-content-language |
string |
選擇性且僅適用於排清和設定屬性作業。 服務會儲存此值,並將其包含在「讀取檔案」作業的「內容語言」回應標頭中。 |
|
x-ms-content-md5 |
string |
選擇性且僅適用於「排清和設定屬性」作業。 服務會儲存此值,並將其包含在「讀取和取得屬性」作業的「Content-Md5」回應標頭中。 如果要求中未指定此屬性,則會清除檔案的這個屬性。 除非再次明確在該檔案上設定此屬性,否則後續呼叫 「讀取和取得屬性」將不會傳回此屬性。 |
|
x-ms-properties |
string |
選擇性。 要以檔案或目錄儲存的使用者定義屬性,格式為逗號分隔的名稱和值組 「n1=v1, n2=v2, ...“,其中每個值都是base64編碼字串。 請注意,字串只能包含 ISO-8859-1 字元集中的 ASCII 字元。 僅適用於 setProperties 作業。 如果檔案或目錄存在,將會移除清單中未包含的任何屬性。 如果省略標頭,則會移除所有屬性。 若要合併新的和現有的屬性,請先取得所有現有的屬性和目前的 E-Tag,然後使用 E-Tag 提出條件式要求,並包含所有屬性的值。 |
|
x-ms-owner |
string |
選擇性且僅適用於 setAccessControl 作業。 設定檔案或目錄的擁有者。 |
|
x-ms-group |
string |
選擇性且僅適用於 setAccessControl 作業。 設定檔案或目錄的擁有群組。 |
|
x-ms-permissions |
string |
只有在帳戶啟用階層命名空間時,才有選擇性且有效。 設定檔案擁有者、檔案擁有者群組和其他專案的 POSIX 訪問許可權。 每個類別都可以被授與讀取 (4) 、寫入 (2) ,或執行 (1) 許可權。 支援符號 (rwxrw-rw-) 和 4 位數八進位表示法 (例如 0766) 。 黏性位也受到支援,而且在符號表示法中,其以字母 t 或 T 表示,取決於其他類別的執行位是分別設定或取消設定 (,例如,具有黏性位的 rwxrw-rw- 會以 rwxrw-rwT 表示。具有黏性位的 rwxrw-rwx 會以 rwxrw-rwt) 表示,沒有 t 或 T 表示未設定黏性位。 在 4 位數的八進位表示法中,其以第 1 個數位表示法 (例如 1766 代表具有黏性位的 rwxrw-rw-,而 0766 代表 rwxrw-rw- 而沒有黏性位) 。 與 x-ms-acl 搭配無效。 |
|
x-ms-acl |
string |
選擇性且僅適用於 setAccessControl 和 setAccessControlRecursive 作業。 setAccessControlRecursive 作業的必要專案。 設定檔案和目錄的 POSIX 訪問控制許可權。 此值是以逗號分隔的訪問控制專案清單,可完全取代在 setAccessControl 和 setAccessControlRecursive 的情況下, (ACL) 的現有訪問控制清單。 setAccessControlRecursive 的 “modify” 模式會更新既有的 ACLS。 每個訪問控制專案 (ACE) 都包含範圍、類型、使用者或群組標識碼,以及格式為 “[scope:][type]:[id]:[permissions]” 的許可權。 範圍必須是 「default」,表示 ACE 屬於目錄的預設 ACL;否則範圍為隱含,且 ACE 屬於存取 ACL。 有四種 ACE 類型:「使用者」會將許可權授與擁有者或具名使用者、「群組」將許可權授與擁有者群組或具名群組,「遮罩」會限制授與具名使用者和群組成員的許可權,而「其他」會將許可權授與任何其他專案中找不到的所有使用者。 使用者或群組標識碼會省略 「mask」 和 「other」 類型的專案。 也會省略擁有者和擁有群組的使用者或群組標識碼。 許可權欄位是3個字元序列,其中第一個字元是 『r』 來授與讀取許可權,第二個字元是 『w』 以授與寫入許可權,而第三個字元是 『x』 來授與執行許可權。 如果未授與存取權,則會使用 『-』 字元來表示許可權遭到拒絕。 例如,下列 ACL 會將讀取、寫入及執行許可權授與檔案擁有者及john.doe@contoso、擁有群組的讀取許可權,以及其他人沒有任何許可權:“user::rwx,user:john.doe@contoso:rwx,group::r--,other::---,mask=rwx”。 與 x-ms-permissions 搭配無效。 setAccessControlRecursive 的 “remove” 模式會移除既有的 ACL,且不應在指定的訪問控制列表中包含許可權:“user:john.doe@contoso:, mask:”。 setAccessControlRecursive 的 “set” 模式會設定 ACL,以取代指定之範圍的預先存在的 ACL,而且必須包含這三個 - 擁有使用者、擁有群組和其他資訊,如果存取範圍已設定,或是在預設範圍內設定擁有使用者、擁有群組或其他專案。 setAccessControlRecursive 的 “set” 和 “modify” 模式必須包含訪問控制清單的許可權。 |
|
If-Match |
string |
[排清數據]、[設定 存取控制] 和 [設定屬性] 選擇性,但 [附加數據] 和 [設定 存取控制 遞歸無效。 ETag 值。 只有資源的 ETag 與指定的值相符,才能指定此標頭執行作業。 ETag 必須以引號指定。 |
|
If-None-Match |
string |
[排清數據]、[設定 存取控制] 和 [設定屬性] 選擇性,但 [附加數據] 和 [設定 存取控制 遞歸無效。 ETag 值或特殊通配符 (“*”) 值。 只有資源的 ETag 與指定的值不相符,才能指定此標頭執行作業。 ETag 必須以引號指定。 |
|
If-Modified-Since |
string |
排清數據和集合屬性的選擇性,但附加數據和集合 存取控制 遞歸無效。 日期和時間值。 指定此標頭,只有在資源自指定的日期和時間以來已修改時,才執行作業。 |
|
If-Unmodified-Since |
string |
排清數據和集合屬性的選擇性,但附加數據和集合 存取控制 遞歸無效。 日期和時間值。 只有當資源自指定的日期和時間以來尚未修改時,才指定此標頭來執行作業。 |
|
x-ms-encryption-key |
string |
選擇性。 Base64 編碼的 AES-256 加密金鑰。 |
|
x-ms-encryption-key-sha256 |
string |
選擇性。 加密金鑰的Base64編碼SHA256哈希。 |
|
x-ms-encryption-algorithm: AES256 |
string |
選擇性。 指定要用於加密的演算法。 這個標頭的值必須是 AES256。 |
|
x-ms-lease-action | True |
從附加和排清作業的 2020-08-04 版開始。 Append 支援 'acquire'、'auto-renew' 和 'acquire-release' 動作。 如果 「取得」,則會取得租用。 如果「自動更新」,則會更新租用。 如果 「acquire-release」,它會取得 & 完成作業,& 完成作業之後釋放租用。 只有在排清作業中才支援 『Release』 動作。 如果為 'true',則會使用 x-ms-lease-id 標頭中的租用標識符資訊,在檔案上釋放租用。 |
|
x-ms-lease-duration |
integer int32 |
需要租用期間才能取得租用,並以秒為單位指定租用的持續時間。 租用持續時間必須介於 15 到 60 秒或 -1 之間,才能無限租用。 |
|
x-ms-proposed-lease-id |
string |
當 「x-ms-lease-action」 為 “acquire” 或 “change” 時,為必要專案。 如果作業成功,則會使用此租用標識符取得租用。 Regex 模式: |
|
x-ms-client-request-id |
string |
分析記錄中記錄的 UUID,用於疑難解答和相互關聯。 Regex 模式: |
|
x-ms-date |
string |
指定要求的「國際標準時間」(UTC)。 使用共用密鑰授權時,這是必要的。 |
|
x-ms-version |
string |
指定用於處理要求的 REST 通訊協定版本。 使用共用密鑰授權時,這是必要的。 |
要求本文
Media Types: "application/octet-stream", "text/plain"
名稱 | 類型 | Description |
---|---|---|
requestBody |
object |
僅適用於附加作業。 要上傳並附加至檔案的數據。 |
回應
名稱 | 類型 | Description |
---|---|---|
200 OK |
數據已排清 (寫入檔案) ,或已成功設定屬性。 回應本文是選擇性的,且僅適用於 “SetAccessControlRecursive” 標題
|
|
202 Accepted |
已接受上傳的數據。 標題
|
|
Other Status Codes |
發生錯誤。 可能的 HTTP 狀態、程式代碼和訊息字串如下所列:
標題
|
定義
名稱 | Description |
---|---|
Acl |
|
Data |
|
Error |
服務錯誤回應物件。 |
Path |
從附加和排清作業的 2020-08-04 版開始。 Append 支援 'acquire'、'auto-renew' 和 'acquire-release' 動作。 如果 'acquire' 會取得租用。 如果 「自動更新」,則會更新租用。 如果 'acquire-release' 會取得 & 完成作業,& 作業完成後釋放租用。 只有在排清作業中才支援 「發行」動作。 如果為 'true',則會使用 x-ms-lease-id 標頭中的租用標識符信息,釋放檔案上的租用。 |
Path |
動作必須是 「附加」,才能將數據附加至檔案、「flush」以排清先前上傳的數據至檔案、“setProperties” 設定檔案或目錄的屬性,或 “setAccessControl” 來設定檔案或目錄的擁有者、群組、許可權或訪問控制清單,或以遞歸方式設定目錄的訪問控制清單。 請注意,必須啟用帳戶的階層命名空間,才能使用訪問控制。 另請注意,存取控制 清單 (ACL) 包含擁有者、擁有群組和其他許可權的許可權,因此 x-ms-permissions 和 x-ms-acl 要求標頭互斥。 |
Set |
AclFailedEntryList
名稱 | 類型 | Description |
---|---|---|
errorMessage |
string |
|
name |
string |
|
type |
string |
DataLakeStorageError
名稱 | 類型 | Description |
---|---|---|
error |
服務錯誤回應物件。 |
Error
服務錯誤回應物件。
名稱 | 類型 | Description |
---|---|---|
code |
string |
服務錯誤碼。 |
message |
string |
服務錯誤訊息。 |
PathLeaseAction
從附加和排清作業的 2020-08-04 版開始。 Append 支援 'acquire'、'auto-renew' 和 'acquire-release' 動作。 如果 'acquire' 會取得租用。 如果 「自動更新」,則會更新租用。 如果 'acquire-release' 會取得 & 完成作業,& 作業完成後釋放租用。 只有在排清作業中才支援 「發行」動作。 如果為 'true',則會使用 x-ms-lease-id 標頭中的租用標識符信息,釋放檔案上的租用。
名稱 | 類型 | Description |
---|---|---|
acquire |
string |
|
acquire-release |
string |
|
auto-renew |
string |
|
release |
string |
PathUpdateAction
動作必須是 「附加」,才能將數據附加至檔案、「flush」以排清先前上傳的數據至檔案、“setProperties” 設定檔案或目錄的屬性,或 “setAccessControl” 來設定檔案或目錄的擁有者、群組、許可權或訪問控制清單,或以遞歸方式設定目錄的訪問控制清單。 請注意,必須啟用帳戶的階層命名空間,才能使用訪問控制。 另請注意,存取控制 清單 (ACL) 包含擁有者、擁有群組和其他許可權的許可權,因此 x-ms-permissions 和 x-ms-acl 要求標頭互斥。
名稱 | 類型 | Description |
---|---|---|
append |
string |
|
flush |
string |
|
setAccessControl |
string |
|
setAccessControlRecursive |
string |
|
setProperties |
string |
SetAccessControlRecursiveResponse
名稱 | 類型 | Description |
---|---|---|
directoriesSuccessful |
integer |
|
failedEntries | ||
failureCount |
integer |
|
filesSuccessful |
integer |