다음을 통해 공유


임대 파일

작업은 Lease File 쓰기 및 삭제 작업을 위해 파일에 대한 잠금을 만들고 관리합니다. Lease File 는 버전 2019-02-02 이상에서 지원됩니다.

다음 모드 중 하나로 작업을 호출 Lease File 할 수 있습니다.

  • Acquire - 새로운 임대를 요청합니다.
  • Change - 기존 임대의 ID를 변경합니다.
  • Release- 다른 클라이언트가 파일에 대한 임대를 즉시 획득할 수 있도록 더 이상 필요하지 않은 경우 임대를 해제합니다.
  • Break- 임대를 강제로 종료하지만 현재 임대 기간이 만료될 때까지 다른 클라이언트가 새 임대를 획득할 수 없도록 합니다.

프로토콜 가용성

파일 공유 프로토콜 사용 사용 가능
SMB Yes
NFS 아니요

요청

다음과 같이 요청을 생성할 Lease File 수 있습니다. HTTPS를 사용하는 것이 좋습니다.

메서드 요청 URI HTTP 버전
Put https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1

다음과 같이 요청 URI에 표시된 경로 구성 요소를 사용자 경로 구성 요소로 바꿉니다.

경로 구성 요소 Description
myaccount 사용자 스토리지 계정의 이름입니다.
myshare 파일 공유 이름입니다.
mydirectorypath 선택 사항입니다. 디렉터리 경로입니다.
myfile 파일 이름입니다.

URI 매개 변수

요청 URI에 다음 추가 매개 변수를 지정할 수 있습니다.

매개 변수 Description
timeout 선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Azure Files 작업에 대한 시간 제한 설정을 참조하세요.

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
Authorization 필수 사항입니다. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수 사항입니다. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
x-ms-version 선택 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-lease-id: <ID> 임대 갱신, 변경 또는 해제 시 필수입니다.

의 값을 x-ms-lease-id 유효한 GUID 문자열 형식으로 지정할 수 있습니다. 유효한 형식 목록은 Guid 생성자(문자열) 를 참조하세요.
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> acquire: 새로운 임대를 요청합니다. 파일에 활성 임대가 없는 경우 Azure Files 파일에 임대를 만들고 새 임대 ID를 반환합니다. 파일에 활성 임대가 있는 경우 활성 임대 ID를 사용하여 새 임대만 요청할 수 있습니다.

change: 활성 임대의 임대 ID를 변경합니다. 에는 change 의 현재 임대 ID와 의 x-ms-lease-id새 임대 ID x-ms-proposed-lease-id가 포함되어야 합니다.

release: 임대를 해제합니다. 요청에 지정된 임대 ID가 파일과 연결된 임대 ID와 일치하는 경우 임대를 해제할 수 있습니다. 임대를 해제하면 릴리스가 완료되는 즉시 다른 클라이언트가 파일에 대한 임대를 즉시 획득할 수 있습니다.

break: 파일에 활성 임대가 있는 경우 임대를 중단합니다. 모든 권한 있는 요청은 임대를 중단할 수 있습니다. 요청은 일치하는 임대 ID를 지정할 필요가 없습니다. 무한 임대가 즉시 끊어집니다.
x-ms-lease-duration: -1 작업에서 acquire 만 허용되고 필요합니다. 만료되지 않는 임대를 나타내려면 이어야 -1합니다.
x-ms-proposed-lease-id: <ID> 의 경우 acquire선택 사항이며 에 필요합니다 change. GUID 문자열 형식의 제안된 임대 ID입니다. Azure Files 제안된 임대 ID가 올바른 형식이 아니면 를 반환 400 (Invalid request) 합니다. 유효한 형식 목록은 Guid 생성자(문자열) 를 참조하세요.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Files 모니터링을 참조하세요.
x-ms-file-request-intent 헤더가 OAuth 토큰을 지정하는 경우 Authorization 필수입니다. 허용되는 값은 입니다 backup. 이 헤더는 헤더를 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action 사용하여 Authorization 권한이 부여된 ID에 할당된 RBAC 정책에 포함되는 경우 또는 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 를 부여하도록 지정합니다. 버전 2022-11-02 이상에 사용할 수 있습니다.
x-ms-allow-trailing-dot: { <Boolean> } 선택 사항입니다. 버전 2022-11-02 이상. 부울 값은 요청 URL에 있는 후행 점을 잘라내야 하는지 여부를 지정합니다. 자세한 내용은 공유, 디렉터리, 파일 및 메타데이터 이름 지정 및 참조를 참조하세요.

요청 본문

없음

샘플 요청

다음 예제 요청은 임대를 획득하는 방법을 보여줍니다.

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1  
  
Request Headers:  
x-ms-version: 2019-07-07  
x-ms-lease-action: acquire  
x-ms-lease-duration: -1  
x-ms-proposed-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-date: <date>  
Authorization: SharedKey testaccount1:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=  

응답

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

상태 코드

임대 작업에 대해 반환되는 성공 상태 코드는 다음과 같습니다.

  • Acquire: 작업에 성공하면 상태 코드 201(만들어짐)이 반환됩니다.
  • Change: 작업에 성공하면 상태 코드 200(정상)이 반환됩니다.
  • Release: 작업에 성공하면 상태 코드 200(정상)이 반환됩니다.
  • Break: 작업에 성공하면 상태 코드 202(수락됨)가 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더도 포함될 수 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 준수합니다.

구문 Description
ETag 조건부로 작업을 수행하는 데 사용할 수 있는 값을 따옴표로 포함합니다. 작업은 이 Lease File 속성을 수정하지 않습니다.
Last-Modified 파일을 마지막으로 수정한 날짜/시간입니다. 자세한 내용은 헤더의 날짜-시간 값 표현을 참조하세요.

파일의 메타데이터 또는 속성에 대한 업데이트를 포함하여 파일에 대한 쓰기 작업은 파일의 마지막 수정 시간을 변경합니다. 작업은 이 Lease File 속성을 수정하지 않습니다.
x-ms-lease-id: <id> 임대를 요청하면 Azure Files 고유한 임대 ID를 반환합니다. 임대가 활성 상태인 동안 임대 ID를 파일에 쓰거나 임대를 변경하거나 해제하기 위한 요청과 함께 포함해야 합니다.

또한 갱신 작업에 성공하면 활성 임대의 임대 ID가 반환됩니다.
x-ms-lease-time: seconds 임대를 중단하는 성공적인 요청에 대해서만 반환됩니다. 0 는 즉시 중단을 위해 반환됩니다.
x-ms-request-id 만들어진 요청을 고유하게 식별하며 요청 문제 해결에 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용되는 Azure Files 버전을 나타냅니다.
Date 응답이 시작된 시간을 나타내는 UTC 날짜/시간 값입니다. 서비스는 이 값을 생성합니다.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 요청에 있는 경우 헤더 값 x-ms-client-request-id 과 같습니다. 값은 최대 1,024자 표시 ASCII 문자입니다. 헤더가 x-ms-client-request-id 요청에 없으면 응답에 표시되지 않습니다.

응답 본문

없음

샘플 응답

다음은 임대를 획득하기 위한 요청의 샘플 응답입니다.

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2019-07-07
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
Date: <date>  

권한 부여

계정 소유자는 이 작업을 호출할 수 있습니다. 또한 이 파일 또는 공유에 쓸 수 있는 권한이 있는 공유 액세스 서명이 있는 클라이언트는 이 작업을 수행할 수 있습니다.

설명

파일의 임대는 파일에 대한 단독 쓰기 및 삭제 액세스를 제공합니다. 활성 임대가 있는 파일에 쓰려면 클라이언트에 쓰기 요청이 포함된 활성 임대 ID가 포함되어야 합니다. 임대는 무한 기간 동안 부여됩니다.

클라이언트가 임대를 획득하면 임대 ID가 반환됩니다. Azure Files 인수 요청에 임대 ID가 지정되지 않은 경우 임대 ID를 생성합니다. 클라이언트는 이 임대 ID를 사용하여 임대 ID를 변경하거나 임대를 해제할 수 있습니다.

임대가 활성화되었으면 다음 작업에 대한 요청에 임대 ID가 포함되어야 합니다.

임대 ID가 포함되지 않은 경우 임대 파일에서 이러한 작업이 실패하고 이(가) 있습니다 412 – Precondition failed.

임대 ID를 포함하지 않고 임대 파일에서 다음 작업이 성공합니다.

활성 임대가 있는 파일에 대한 작업에 대한 GET 임대 ID를 포함할 필요는 없습니다. 그러나 모든 GET 작업은 조건부 임대 매개 변수를 지원합니다. 이 유형의 매개 변수에서는 요청에 포함된 임대 ID가 유효한 경우에만 작업이 진행됩니다.

공유 삭제를 포함하여 활성 임대 파일이 포함된 공유에서 모든 공유 작업이 허용됩니다. 따라서 공유 내의 파일에 활성 임대가 있더라도 공유를 삭제할 수 있습니다.

임대 상태

다음 다이어그램에서는 임대의 세 가지 상태와 임대 상태를 변경하는 명령 또는 이벤트를 보여 줍니다.

파일 임대 상태 및 상태 변경 트리거를 보여 주는 다이어그램

임대는 임대가 잠겨 있는지 잠금 해제되었는지 여부와 임대가 해당 상태에서 재생 가능한지 여부에 따라 세 가지 상태에 있을 수 있습니다. 앞의 다이어그램에 표시된 임대 작업으로 인해 상태 전환이 발생합니다.

  • Available: 임대가 잠금 해제되어 획득할 수 있습니다. 허용되는 작업: acquire.
  • Leased: 임대가 잠겨 있습니다. 허용되는 작업: acquire (동일한 임대 ID에만 해당), change, releasebreak.
  • Broken: 임대가 끊어졌습니다. 허용되는 작업: acquire, releasebreak.

스냅샷은 읽기 전용이므로 공유 스냅샷 파일에 대한 임대를 부여할 수 없습니다. 공유 스냅샷 파일에 대한 임대를 요청하면 상태 코드 400(잘못된 요청)이 발생합니다.

파일 임대가 끊어진 상태이고 Put Range 작업이 파일에 쓰는 경우 임대 상태가 사용 가능으로 변경됩니다. 그러나 파일에 읽기 전용 특성이 설정된 경우 서버는 충돌 409를 반환합니다.

파일의 Last-Modified-Time 속성은 에 대한 호출로 Lease File업데이트되지 않습니다.

다음 표에서는 다양한 임대 상태에서 임대가 있는 파일에 대한 작업의 결과를 보여 줍니다. 문자(A), (B) 및 (C)는 임대 ID를 나타내고(X)는 Azure Files 생성된 임대 ID를 나타냅니다.

임대 상태별 파일에 대한 사용 시도 결과

작업 사용 가능 임대됨 (A) 중단됨 (A)
를 사용하여 쓰기(A) 실패 (412) 임대됨 (A), 쓰기 성공 실패 (412)
를 사용하여 쓰기(B) 실패 (412) 실패(409) 실패 (412)
쓰기, 임대가 지정되지 않음 사용할 수 있음, 쓰기 성공 실패 (412) 사용할 수 있음, 쓰기 성공
를 사용하여 읽기(A) 실패 (412) 임대됨 (A), 읽기 성공 실패 (412)
를 사용하여 읽기(B) 실패 (412) 실패(409) 실패 (412)
읽기, 임대가 지정되지 않음 사용할 수 있음, 읽기 성공 임대됨 (A), 읽기 성공 중단됨 (A), 읽기 성공

임대 상태별 파일에 대한 임대 작업의 결과

작업 사용 가능 임대됨 (A) 중단됨 (A)
Acquire, 제안된 임대 ID 없음 임대됨 (X) 실패(409) 임대됨 (X)
Acquire (A) 임대됨 (A) 임대됨 (A) 임대됨 (A)
Acquire (B) 임대됨 (B) 실패(409) 임대됨 (B)
Break 실패(409) 중단됨 (A) 중단됨 (A)
Change, (A)에서 (B) 실패(409) 임대됨 (B) 실패(409)
Change, (B)에서 (A) 실패(409) 임대됨 (A) 실패(409)
Change, (B)에서 (C) 실패(409) 실패(409) 실패(409)
Release (A) 실패(409) 사용 가능 사용 가능
Release (B) 실패(409) 실패(409) 실패(409)

추가 정보