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 minLength: 3maxLength: 63 pattern: ^[$a-z0-9](?!.*--)[-a-z0-9]{1,61}[a-z0-9]$ |
文件系統標識碼。 |
path
|
path | True |
string |
檔案或目錄路徑。 |
action
|
query | True |
動作必須是“append”,才能上傳要附加至檔案的數據、“flush” 以排清先前上傳的數據到檔案、“setProperties” 來設定檔案或目錄的屬性,或 “setAccessControl” 以設定檔案或目錄的擁有者、群組、許可權或訪問控制清單,或 “setAccessControlRecursive” 以遞歸方式設定目錄的訪問控制列表。 請注意,必須啟用帳戶的階層命名空間,才能使用訪問控制。 另請注意,訪問控制清單 (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 發生使用者錯誤時,才會傳回接續令牌。 forceFlag 的預設值為 false。 |
|
max
|
query |
integer (int32) minimum: 1 |
選擇性且僅適用於 「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) minimum: 1 |
選擇性作業逾時值,以秒為單位。 期間是從服務收到要求時開始的。 如果逾時值在作業完成之前經過,作業就會失敗。 |
要求標頭
Media Types: "application/octet-stream", "text/plain"
名稱 | 必要 | 類型 | Description |
---|---|---|---|
Content-Length |
integer (int64) minimum: 0 |
「附加數據」和「排清數據」的必要專案。 「排清數據」必須為 0。 必須是「附加數據」的要求內容長度,以位元組為單位。 |
|
Content-MD5 |
string |
選擇性。 要求內容的 MD5 哈希。 此標頭在 「Append」 和 「Flush」 作業上有效。 此哈希是用來驗證傳輸期間要求內容的完整性。 指定此標頭時,記憶體服務會比較已與這個標頭值一起抵達的內容哈希。 如果兩個哈希不相符,作業將會失敗,錯誤碼為 400 (不正確的要求)。 請注意,此 MD5 哈希不會與檔案一起儲存。 此標頭與要求內容相關聯,而不是與檔案本身的預存內容相關聯。 |
|
x-ms-lease-id |
string pattern: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$ |
如果有作用中的租用,則必須指定租用標識符。 “setAccessControlRecursive” 作業無效。 |
|
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 |
選擇性且僅適用於排清和設定屬性作業。 服務會儲存此值,並將其包含在「讀取檔案」作業的「Content-Language」回應標頭中。 |
|
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 和 setAccessConcursive 的 “set” 模式的情況下,完全取代現有的訪問控制清單 (ACL)。 setAccessControlRecursive 的 “modify” 模式會更新既有的 ACLS。 每個訪問控制專案 (ACE) 都包含範圍、類型、使用者或群組標識碼,以及格式為 “[scope:][type]:[id]:[permissions]” 的許可權。 範圍必須是 「預設值」,才能指出 ACE 屬於目錄的預設 ACL;否則範圍是隱含的,且 ACE 屬於存取 ACL。 ACE 類型有四種:「user」 會將許可權授與擁有者或具名使用者、「群組」將許可權授與擁有者群組或具名群組、「遮罩」會限制授與給具名使用者和群組成員的許可權,而「其他」會將許可權授與任何其他專案中找不到的所有使用者。 針對類型為 「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 pattern: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$ |
當 「x-ms-lease-action」 是 “acquire” 或 “change” 時的必要專案。 如果作業成功,則會使用此租用標識符取得租用。 |
|
x-ms-client-request-id |
string pattern: ^[{(]?[0-9a-f]{8}[-]?([0-9a-f]{4}[-]?){3}[0-9a-f]{12}[)}]?$ |
在分析記錄中記錄的 UUID,用於疑難解答和相互關聯。 |
|
x-ms-date |
string |
指定要求的國際標準時間(UTC)。 使用共用密鑰授權時,這是必要的。 |
|
x-ms-version |
string |
指定用於處理要求的 REST 通訊協定版本。 使用共用密鑰授權時,這是必要的。 |
要求本文
Media Types: "application/octet-stream", "text/plain"
名稱 | 類型 | Description |
---|---|---|
requestBody |
object (file) |
僅適用於附加作業。 要上傳並附加至檔案的數據。 |
回應
名稱 | 類型 | 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-release」,它會取得 & 完成作業,& 完成作業後釋放租用。 只有在排清作業中才支援 『Release』 動作。 如果為 'true',則會使用 x-ms-lease-id 標頭中的租用標識符信息來釋放檔案上的租用。 |
Path |
動作必須是“append”,才能上傳要附加至檔案的數據、“flush” 以排清先前上傳的數據到檔案、“setProperties” 來設定檔案或目錄的屬性,或 “setAccessControl” 以設定檔案或目錄的擁有者、群組、許可權或訪問控制清單,或 “setAccessControlRecursive” 以遞歸方式設定目錄的訪問控制列表。 請注意,必須啟用帳戶的階層命名空間,才能使用訪問控制。 另請注意,訪問控制清單 (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-release」,它會取得 & 完成作業,& 完成作業後釋放租用。 只有在排清作業中才支援 『Release』 動作。 如果為 'true',則會使用 x-ms-lease-id 標頭中的租用標識符信息來釋放檔案上的租用。
值 | Description |
---|---|
acquire | |
acquire-release | |
auto-renew | |
release |
PathUpdateAction
動作必須是“append”,才能上傳要附加至檔案的數據、“flush” 以排清先前上傳的數據到檔案、“setProperties” 來設定檔案或目錄的屬性,或 “setAccessControl” 以設定檔案或目錄的擁有者、群組、許可權或訪問控制清單,或 “setAccessControlRecursive” 以遞歸方式設定目錄的訪問控制列表。 請注意,必須啟用帳戶的階層命名空間,才能使用訪問控制。 另請注意,訪問控制清單 (ACL) 包含擁有者、擁有群組和其他許可權,因此 x-ms-permissions 和 x-ms-acl 要求標頭互斥。
值 | Description |
---|---|
append | |
flush | |
setAccessControl | |
setAccessControlRecursive | |
setProperties |
SetAccessControlRecursiveResponse
名稱 | 類型 | Description |
---|---|---|
directoriesSuccessful |
integer (int32) |
|
failedEntries | ||
failureCount |
integer (int32) |
|
filesSuccessful |
integer (int32) |