다음을 통해 공유


임대 파일

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

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

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

프로토콜 가용성

파일 공유 프로토콜 사용 이용할 수 있는
SMB 예
NFS 없음

요청

Lease File 요청은 다음과 같이 생성됩니다. HTTPS를 사용하는 것이 좋습니다.

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

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

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

URI 매개 변수

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

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

요청 헤더

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

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

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

change: 활성 임대의 임대 ID를 변경합니다. change x-ms-lease-id현재 임대 ID와 x-ms-proposed-lease-id새 임대 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 선택적. 로깅이 구성될 때 로그에 기록되는 1kibibyte(KiB) 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Files모니터링을 참조하세요.
x-ms-file-request-intent Authorization 헤더가 OAuth 토큰을 지정하는 경우 필수입니다. 허용되는 값은 backup. 이 헤더는 Authorization 헤더를 사용하여 권한이 부여된 ID에 할당된 RBAC 정책에 포함된 경우 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action 또는 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 myaccount:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=  

응답

응답에는 HTTP 상태 코드와 응답 헤더 집합이 포함됩니다.

상태 코드

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

  • Acquire: 성공한 작업은 상태 코드 201(생성됨)을 반환합니다.
  • Change: 작업이 성공하면 상태 코드 200(확인)이 반환됩니다.
  • Release: 작업이 성공하면 상태 코드 200(확인)이 반환됩니다.
  • Break: 성공한 작업은 상태 코드 202(수락됨)를 반환합니다.

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

응답 헤더

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

응답 헤더 묘사
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)

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

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

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

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

임대 상태

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

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

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

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

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

파일 임대가 부서진 상태이고 배치 범위 작업이 파일에 기록되면 임대 상태가 사용 가능한 변경됩니다. 그러나 파일에 읽기 전용 특성 집합이 있는 경우 서버는 충돌 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) to (B) 실패(409) 임대(B) 실패(409)
Change, (B) to (A) 실패(409) 임대(A) 실패(409)
Change, (B) to (C) 실패(409) 실패(409) 실패(409)
Release(A) 실패(409) 이용할 수 있는 이용할 수 있는
Release(B) 실패(409) 실패(409) 실패(409)

참고 항목