Path - Update
데이터 추가 | 데이터 플러시 | 속성 설정 | Access Control 설정
파일에 추가할 데이터를 업로드하거나, 이전에 업로드한 데이터를 파일에 플러시(쓰기)하거나, 파일 또는 디렉터리에 대한 속성을 설정하거나, 파일 또는 디렉터리에 대한 액세스 제어를 설정합니다. 데이터는 파일에만 추가할 수 있습니다. 여러 클라이언트를 사용하여 동일한 파일에 대한 동시 쓰기는 지원되지 않습니다. 이 작업은 조건부 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 매개 변수
Name | In(다음 안에) | 필수 | 형식 | Description |
---|---|---|---|---|
account
|
path | True |
string |
Azure Storage 계정 이름입니다. |
dns
|
path | True |
string |
Azure Data Lake Storage 엔드포인트에 대한 DNS 접미사입니다. |
filesystem
|
path | True |
string |
파일 시스템 식별자입니다. regex 패턴: |
path
|
path | True |
string |
파일 또는 디렉터리 경로입니다. |
action
|
query | True |
파일에 추가할 데이터를 업로드하려면 작업을 "추가"해야 합니다. 이전에 업로드한 데이터를 파일에 플러시하려면 "flush", 파일 또는 디렉터리의 속성을 설정하는 "setProperties", 파일 또는 디렉터리에 대한 소유자, 그룹, 권한 또는 액세스 제어 목록을 설정하는 "setAccessControl", 디렉터리에 대한 액세스 제어 목록을 재귀적으로 설정하는 "setAccessControlRecursive". 액세스 제어를 사용하려면 계정에 대해 계층 구조 네임스페이스를 사용하도록 설정해야 합니다. 또한 ACL(Access Control List)에는 소유자, 소유 그룹 등에 대한 권한이 포함되므로 x-ms-permissions 및 x-ms-acl 요청 헤더는 상호 배타적입니다. |
|
close
|
query |
boolean |
Azure Storage 이벤트를 사용하면 파일이 변경될 때 애플리케이션이 알림을 받을 수 있습니다. Azure Storage 이벤트를 사용하도록 설정하면 파일 변경 이벤트가 발생합니다. 이 이벤트에는 파일 스트림에 대한 중간 플러시와 파일 스트림의 마지막 닫기 간의 차이를 구분하기 위한 최종 변경 내용인지 여부를 나타내는 속성이 있습니다. close 쿼리 매개 변수는 작업이 "플러시"이고 변경 알림이 사용하도록 설정된 경우에만 유효합니다. 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" 작업에 유효하고 필요합니다. 모드 "설정"은 파일 및 디렉터리에 대한 POSIX 액세스 제어 권한을 설정하고, "수정"은 파일 및 디렉터리에 존재하는 하나 이상의 POSIX 액세스 제어 권한을 수정합니다. "제거"는 파일 및 디렉터리에 이전에 있던 하나 이상의 POSIX 액세스 제어 권한을 제거합니다. |
|
position
|
query |
integer int64 |
이 매개 변수를 사용하면 호출자가 병렬로 데이터를 업로드하고 파일에 추가되는 순서를 제어할 수 있습니다. 파일에 추가할 데이터를 업로드하고 이전에 업로드한 데이터를 파일에 플러시할 때 필요합니다. 값은 데이터를 추가할 위치여야 합니다. 업로드된 데이터는 파일에 즉시 플러시되거나 기록되지 않습니다. 플러시하려면 이전에 업로드한 데이터가 연속되어야 하고, 모든 데이터가 작성된 후 위치 매개 변수를 지정하고 파일 길이와 같아야 하며, 요청에 포함된 요청 엔터티 본문이 없어야 합니다. |
|
retain
|
query |
boolean |
플러시 작업에만 유효합니다. "true"이면 플러시 작업이 완료된 후 커밋되지 않은 데이터가 유지됩니다. 그렇지 않으면 커밋되지 않은 데이터는 플러시 작업 후에 삭제됩니다. 기본값은 false입니다. 지정된 위치보다 작은 오프셋의 데이터는 플러시 성공 시 파일에 기록되지만, 이 선택적 매개 변수를 사용하면 이후 플러시 작업을 위해 플러시 위치 이후의 데이터를 보존할 수 있습니다. |
|
timeout
|
query |
integer int32 |
선택적 작업 시간 제한 값(초)입니다. 이 기간은 서비스에서 요청을 수신할 때 시작됩니다. 작업이 완료되기 전에 시간 제한 값이 경과하면 작업이 실패합니다. |
요청 헤더
Media Types: "application/octet-stream", "text/plain"
Name | 필수 | 형식 | Description |
---|---|---|---|
Content-Length |
integer int64 |
"데이터 추가" 및 "데이터 플러시"에 필요합니다. "데이터 플러시"의 경우 0이어야 합니다. "데이터 추가"에 대한 요청 콘텐츠의 길이(바이트)여야 합니다. |
|
Content-MD5 |
string |
선택 사항입니다. 요청 콘텐츠의 MD5 해시입니다. 이 헤더는 "추가" 및 "플러시" 작업에서 유효합니다. 이 해시는 전송 중 요청 콘텐츠의 무결성을 확인하는 데 사용됩니다. 이 헤더를 지정하면 저장소 서비스가 도착한 콘텐츠의 해시를 이 헤더 값과 비교합니다. 두 해시가 일치하지 않으면 작업이 실패하고 오류 코드 400(잘못된 요청)이 표시됩니다. 이 MD5 해시는 파일과 함께 저장되지 않습니다. 이 헤더는 파일 자체의 저장된 콘텐츠가 아니라 요청 콘텐츠와 연결됩니다. |
|
x-ms-lease-id |
string |
활성 임대가 있는 경우 임대 ID를 지정해야 합니다. "setAccessControlRecursive" 작업에 대해 유효하지 않습니다. regex 패턴: |
|
x-ms-cache-control |
string |
선택 사항이며 플러시 및 설정 속성 작업에만 유효합니다. 서비스는 이 값을 저장하고 "파일 읽기" 작업에 대한 "Cache-Control" 응답 헤더에 포함합니다. |
|
x-ms-content-type |
string |
선택 사항이며 플러시 및 설정 속성 작업에만 유효합니다. 서비스는 이 값을 저장하고 "파일 읽기" 작업에 대한 "Content-Type" 응답 헤더에 포함합니다. |
|
x-ms-content-disposition |
string |
선택 사항이며 플러시 및 설정 속성 작업에만 유효합니다. 서비스는 이 값을 저장하고 "파일 읽기" 작업에 대한 "Content-Disposition" 응답 헤더에 포함합니다. |
|
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자리 8진수 표기법(예: 0766)이 모두 지원됩니다. 또한 고정 비트는 지원되며 기호 표기법으로 다른 범주의 실행 비트가 각각 설정되었는지 여부에 따라 최종 문자 위치의 t 또는 T로 표현됩니다(예: 고정 비트가 있는 rwxrw-rw-는 rwxrw-rwT로 표현됨). 고정 비트가 있는 rwxrw-rwx는 rwxrw-rwt로 표시되고, t 또는 T가 없을 경우 고정 비트가 설정되지 않음을 나타냅니다. 4자리 8진수 표기법에서 1자리 숫자로 표시되는 표기법(예: 1766은 rwxrw-rw-을 나타내고 0766은 고정 비트가 없는 rwxrw-rw-를 나타낸다). x-ms-acl과 함께 잘못되었습니다. |
|
x-ms-acl |
string |
선택 사항이며 setAccessControl 및 setAccessControlRecursive 작업에만 유효합니다. setAccessControlRecursive 작업에 필요합니다. 파일 및 디렉터리에 대한 POSIX 액세스 제어 권한을 설정합니다. 값은 setAccessControl 및 setAccessControlRecursive의 "set" 모드의 경우 기존 ACL(액세스 제어 목록)을 완전히 대체하는 쉼표로 구분된 액세스 제어 항목 목록입니다. setAccessControlRecursive의 "수정" 모드는 기존 ACLS를 업데이트합니다. ACE(각 액세스 제어 항목)는 scope, 형식, 사용자 또는 그룹 식별자 및 "[scope:][type]:[id]:[permissions]" 형식의 권한으로 구성됩니다. ACE가 디렉터리의 기본 ACL에 속함을 나타내려면 scope "기본값"이어야 합니다. 그렇지 않으면 scope 암시적이고 ACE는 액세스 ACL에 속합니다. 네 가지 ACE 유형이 있습니다. "사용자"는 소유자 또는 명명된 사용자에게 권한을 부여하고, "그룹"은 소유 그룹 또는 명명된 그룹에 대한 권한을 부여하고, "mask"는 명명된 사용자 및 그룹 구성원에게 부여된 권한을 제한하고, "기타"는 다른 항목에서 찾을 수 없는 모든 사용자에게 권한을 부여합니다. 사용자 또는 그룹 식별자는 "mask" 및 "other" 형식의 항목에 대해 생략됩니다. 소유자 및 소유 그룹에 대한 사용자 또는 그룹 식별자도 생략됩니다. 권한 필드는 첫 번째 문자가 읽기 액세스 권한을 부여하기 위한 'r'이고, 두 번째 문자는 쓰기 액세스 권한을 부여하기 위해 'w'이고, 세 번째 문자는 실행 권한을 부여하는 'x'인 3자 시퀀스입니다. 액세스 권한이 부여되지 않은 경우 '-' 문자를 사용하여 사용 권한이 거부되었음을 나타냅니다. 예를 들어 다음 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" 모드는 지정된 scope 기존 ACL을 대체하는 ACL을 설정하고 액세스 scope 설정되거나 소유 사용자, 소유 그룹 또는 기타 정보가 기본 scope 설정되는 경우 사용자 소유, 그룹 및 기타 정보 등 세 가지를 모두 포함해야 합니다. setAccessControlRecursive의 "set" 및 "modify" 모드에는 액세스 제어 목록의 일부로 사용 권한이 포함되어야 합니다. |
|
If-Match |
string |
데이터 플러시, Access Control 설정 및 속성 설정의 경우 선택 사항이지만 데이터 추가 및 재귀 Access Control 설정에는 유효하지 않습니다. ETag 값입니다. 리소스의 ETag가 지정된 값과 일치하는 경우에만 작업을 수행하려면 이 헤더를 지정합니다. ETag는 따옴표로 지정해야 합니다. |
|
If-None-Match |
string |
데이터 플러시, Access Control 설정 및 속성 설정의 경우 선택 사항이지만 데이터 추가 및 재귀 Access Control 설정에는 유효하지 않습니다. ETag 값 또는 특수 와일드카드("*") 값입니다. 리소스의 ETag가 지정된 값과 일치하지 않는 경우에만 작업을 수행하려면 이 헤더를 지정합니다. ETag는 따옴표로 지정해야 합니다. |
|
If-Modified-Since |
string |
데이터 플러시 및 속성 설정의 경우 선택 사항이지만 데이터 추가 및 재귀 Access Control 설정에는 유효하지 않습니다. 날짜 및 시간 값입니다. 지정된 날짜 및 시간 이후 리소스가 수정된 경우에만 작업을 수행하도록 이 헤더를 지정합니다. |
|
If-Unmodified-Since |
string |
데이터 플러시 및 속성 설정의 경우 선택 사항이지만 데이터 추가 및 재귀 Access Control 설정에는 유효하지 않습니다. 날짜 및 시간 값입니다. 지정된 날짜 및 시간 이후 리소스가 수정되지 않은 경우에만 작업을 수행하려면 이 헤더를 지정합니다. |
|
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'이면 작업이 완료되면 임대를 해제할 & 작업을 완료할 & 획득합니다. '릴리스' 작업은 플러시 작업에서만 지원됩니다. 'true'인 경우 x-ms-lease-id 헤더의 임대 ID 정보를 사용하여 파일에서 임대를 해제합니다. |
|
x-ms-lease-duration |
integer int32 |
임대 기간은 임대를 획득하는 데 필요하며 임대 기간(초)을 지정합니다. 임대 기간은 무한 임대의 경우 15~60초 또는 -1 사이여야 합니다. |
|
x-ms-proposed-lease-id |
string |
"x-ms-lease-action"이 "acquire" 또는 "change"인 경우 필요합니다. 작업이 성공하면 이 임대 ID를 사용하여 임대를 획득합니다. 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"
Name | 형식 | Description |
---|---|---|
requestBody |
object |
추가 작업에만 유효합니다. 업로드하고 파일에 추가할 데이터입니다. |
응답
Name | 형식 | Description |
---|---|---|
200 OK |
데이터가 파일에 플러시(기록)되었거나 속성이 성공적으로 설정되었습니다. 응답 본문은 선택 사항이며 "SetAccessControlRecursive"에만 유효합니다. 헤더
|
|
202 Accepted |
업로드된 데이터가 수락되었습니다. 헤더
|
|
Other Status Codes |
오류가 발생했습니다. 가능한 HTTP 상태, 코드 및 메시지 문자열은 다음과 같습니다.
헤더
|
정의
Name | Description |
---|---|
Acl |
|
Data |
|
Error |
서비스 오류 응답 개체입니다. |
Path |
추가 및 플러시 작업에서 버전 2020-08-04부터 시작합니다. Append는 'acquire', 'auto-renew' 및 'acquire-release' 작업을 지원합니다. '인수'하는 경우 임대를 획득합니다. '자동 갱신'이면 임대를 갱신합니다. 'acquire-release'이면 작업이 완료되면 임대를 해제할 & 작업을 완료할 & 획득합니다. '릴리스' 작업은 플러시 작업에서만 지원됩니다. 'true'인 경우 x-ms-lease-id 헤더의 임대 ID 정보를 사용하여 파일에서 임대를 해제합니다. |
Path |
파일에 추가할 데이터를 업로드하려면 작업을 "추가"해야 합니다. 이전에 업로드한 데이터를 파일에 플러시하려면 "flush", 파일 또는 디렉터리의 속성을 설정하는 "setProperties", 파일 또는 디렉터리에 대한 소유자, 그룹, 권한 또는 액세스 제어 목록을 설정하는 "setAccessControl", 디렉터리에 대한 액세스 제어 목록을 재귀적으로 설정하는 "setAccessControlRecursive". 액세스 제어를 사용하려면 계정에 대해 계층 구조 네임스페이스를 사용하도록 설정해야 합니다. 또한 ACL(Access Control List)에는 소유자, 소유 그룹 등에 대한 권한이 포함되므로 x-ms-permissions 및 x-ms-acl 요청 헤더는 상호 배타적입니다. |
Set |
AclFailedEntryList
Name | 형식 | Description |
---|---|---|
errorMessage |
string |
|
name |
string |
|
type |
string |
DataLakeStorageError
Name | 형식 | Description |
---|---|---|
error |
서비스 오류 응답 개체입니다. |
Error
서비스 오류 응답 개체입니다.
Name | 형식 | Description |
---|---|---|
code |
string |
서비스 오류 코드입니다. |
message |
string |
서비스 오류 메시지입니다. |
PathLeaseAction
추가 및 플러시 작업에서 버전 2020-08-04부터 시작합니다. Append는 'acquire', 'auto-renew' 및 'acquire-release' 작업을 지원합니다. '인수'하는 경우 임대를 획득합니다. '자동 갱신'이면 임대를 갱신합니다. 'acquire-release'이면 작업이 완료되면 임대를 해제할 & 작업을 완료할 & 획득합니다. '릴리스' 작업은 플러시 작업에서만 지원됩니다. 'true'인 경우 x-ms-lease-id 헤더의 임대 ID 정보를 사용하여 파일에서 임대를 해제합니다.
Name | 형식 | Description |
---|---|---|
acquire |
string |
|
acquire-release |
string |
|
auto-renew |
string |
|
release |
string |
PathUpdateAction
파일에 추가할 데이터를 업로드하려면 작업을 "추가"해야 합니다. 이전에 업로드한 데이터를 파일에 플러시하려면 "flush", 파일 또는 디렉터리의 속성을 설정하는 "setProperties", 파일 또는 디렉터리에 대한 소유자, 그룹, 권한 또는 액세스 제어 목록을 설정하는 "setAccessControl", 디렉터리에 대한 액세스 제어 목록을 재귀적으로 설정하는 "setAccessControlRecursive". 액세스 제어를 사용하려면 계정에 대해 계층 구조 네임스페이스를 사용하도록 설정해야 합니다. 또한 ACL(Access Control List)에는 소유자, 소유 그룹 등에 대한 권한이 포함되므로 x-ms-permissions 및 x-ms-acl 요청 헤더는 상호 배타적입니다.
Name | 형식 | Description |
---|---|---|
append |
string |
|
flush |
string |
|
setAccessControl |
string |
|
setAccessControlRecursive |
string |
|
setProperties |
string |
SetAccessControlRecursiveResponse
Name | 형식 | Description |
---|---|---|
directoriesSuccessful |
integer |
|
failedEntries | ||
failureCount |
integer |
|
filesSuccessful |
integer |