Blob 임대Lease Blob

Lease Blob작업은 쓰기 및 삭제 작업을 위해 blob에 대 한 잠금을 만들고 관리 합니다.The Lease Blob operation creates and manages a lock on a blob for write and delete operations. 잠금 기간은 15~60초 또는 무한할 수 있습니다.The lock duration can be 15 to 60 seconds, or can be infinite. 2012-02-12 이전 버전에서는 잠금 기간이 60 초입니다.In versions prior to 2012-02-12, the lock duration is 60 seconds.

중요

2012-02-12 버전부터는 Lease Blob 작업의 일부 동작이 이전 버전과 다릅니다.Starting in version 2012-02-12, some behaviors of the Lease Blob operation differ from previous versions. 예를 들어 이전 버전의 Lease Blob 작업에서는 해제한 후 임대를 갱신할 수 있었습니다.For example, in previous versions of the Lease Blob operation you could renew a lease after releasing it. 2012-02-12 버전부터 이러한 임대 요청은 실패하며, 이전 버전의 Lease Blob를 사용한 호출은 성공합니다.Starting in version 2012-02-12, this lease request will fail, while calls using older versions of Lease Blob still succeed. 이 작업에서 변경된 동작 목록을 보려면 Changes to Lease Blob introduced in version 2012-02-12 아래에서 Remarks 섹션을 참조하세요.See the Changes to Lease Blob introduced in version 2012-02-12 section under Remarks for a list of changes to the behavior of this operation.

Lease Blob 작업은 다음 5개 모드 중 하나로 호출할 수 있습니다.The Lease Blob operation can be called in one of five modes:

  • Acquire - 새로운 임대를 요청합니다.Acquire, to request a new lease.

  • Renew - 기존 임대를 갱신합니다.Renew, to renew an existing lease.

  • Change - 기존 임대의 ID를 변경합니다.Change, to change the ID of an existing lease.

  • Release - 더 이상 필요하지 않은 경우 다른 클라이언트가 해당 blob에 대한 임대를 즉시 획득할 수 있도록 임대를 해제합니다.Release, to free the lease if it is no longer needed so that another client may immediately acquire a lease against the blob.

  • Break - 임대를 종료하지만 현재 임대 기간이 만료될 때까지 다른 클라이언트가 새로운 임대를 획득할 수 없습니다.Break, to end the lease but ensure that another client cannot acquire a new lease until the current lease period has expired.

요청Request

다음과 같이 Lease Blob 요청을 생성할 수 있습니다.The Lease Blob request may be constructed as follows. HTTPS를 사용하는 것이 좋습니다.HTTPS is recommended. Myaccount 을 사용자의 저장소 계정 이름으로 바꿉니다.Replace myaccount with the name of your storage account:

PUT 메서드 요청 URIPUT Method Request URI HTTP 버전HTTP Version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=lease HTTP/1.1HTTP/1.1

에뮬레이트된 저장소 서비스 URIEmulated storage service URI

에뮬레이트된 저장소 서비스에 대해 요청을 수행할 때는 에뮬레이터 호스트 이름 및 Blob 서비스 포트를 127.0.0.1:10000으로 지정하고 뒤에 에뮬레이트된 저장소 계정 이름을 붙입니다.When making a request against the emulated storage service, specify the emulator hostname and Blob service port as 127.0.0.1:10000, followed by the emulated storage account name:

PUT 메서드 요청 URIPUT Method Request URI HTTP 버전HTTP Version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=lease HTTP/1.0HTTP/1.0

HTTP/1.1HTTP/1.1

자세한 내용은 개발 및 테스트에 Azure Storage 에뮬레이터 사용을 참조 하세요.For more information, see Using the Azure Storage Emulator for Development and Testing.

URI 매개 변수URI Parameters

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.The following additional parameters may be specified on the request URI.

매개 변수Parameter DescriptionDescription
timeout 선택 사항입니다.Optional. timeout 매개 변수는 초 단위로 표시됩니다.The timeout parameter is expressed in seconds. 자세한 내용은 Blob 서비스 작업에 대 한 시간 제한 설정을 참조 하세요.For more information, see Setting Timeouts for Blob Service Operations.

요청 헤더Request Headers

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.The following table describes required and optional request headers.

요청 헤더Request Header 설명Description
Authorization 필수 요소.Required. 인증 체계, 계정 이름 및 서명을 지정 합니다.Specifies the authorization scheme, account name, and signature. 자세한 내용은 Azure Storage에 요청 권한 부여를 참조 하세요.For more information, see Authorize requests to Azure Storage.
Date 또는 x-ms-dateDate or x-ms-date 필수 요소.Required. 요청에 대한 UTC(협정 세계시)를 지정합니다.Specifies the Coordinated Universal Time (UTC) for the request. 자세한 내용은 Azure Storage에 요청 권한 부여를 참조 하세요.For more information, see Authorize requests to Azure Storage.
x-ms-version 선택 사항입니다.Optional. 이 요청에 사용할 작업의 버전을 지정합니다.Specifies the version of the operation to use for this request. 자세한 내용은 Azure Storage Services에 대 한 버전 관리를 참조 하세요.For more information, see Versioning for the Azure Storage Services.
x-ms-lease-id: <ID> 임대 갱신, 변경 또는 해제 시 필수입니다.Required to renew, change, or release the lease.

x-ms-lease-id 값은 모든 유효한 GUID 문자열 형식으로 지정할 수 있습니다.The value of x-ms-lease-id can be specified in any valid GUID string format. 유효한 GUID 문자열 형식 목록은 Guid 생성자 (문자열) 를 참조 하세요.See Guid Constructor (String) for a list of valid GUID string formats.
x-ms-lease-action: <acquire ¦ renew ¦ change ¦ release ¦ break> acquire: 새로운 임대를 요청합니다.acquire: Requests a new lease. blob에 활성 임대가 없으면, Blob 서비스가 blob에 대한 임대를 만들고 새로운 임대 ID를 반환합니다.If the blob does not have an active lease, the Blob service creates a lease on the blob and returns a new lease ID. blob에 활성 임대가 있으면 활성 임대 ID를 사용해서 새로운 임대를 요청할 수만 있지만 만료되지 않는 임대의 -1을 포함해서 새로운 x-ms-lease-duration을 지정할 수 있습니다.If the blob has an active lease, you can only request a new lease using the active lease ID, but you can specify a new x-ms-lease-duration, including negative one (-1) for a lease that never expires.

renew: 임대를 갱신합니다.renew: Renews the lease. 요청에 지정된 임대 ID가 blob과 연결된 임대 ID와 일치할 경우 임대를 갱신할 수 있습니다.The lease can be renewed if the lease ID specified on the request matches that associated with the blob. 임대가 만료되었더라도 blob가 수정되지 않았거나 임대 만료 후 다시 임대되지 않은 경우에 한해 임대를 갱신할 수 있습니다.Note that the lease may be renewed even if it has expired as long as the blob has not been modified or leased again since the expiration of that lease. 임대를 갱신하면 임대 기간 시간이 재설정됩니다.When you renew a lease, the lease duration clock resets.

change: 2012-02-12 버전 이상.change: Version 2012-02-12 and newer. 활성 임대의 임대 ID를 변경합니다.Changes the lease ID of an active lease. change를 사용하려면 x-ms-lease-id에 현재 임대 ID가 포함되고 x-ms-proposed-lease-id에 새로운 임대 ID가 포함되어야 합니다.A change must include the current lease ID in x-ms-lease-id and a new lease ID in x-ms-proposed-lease-id.

release: 임대를 해제합니다.release: Releases the lease. 요청에 지정된 임대 ID가 blob과 연결된 임대 ID와 일치할 경우 임대를 해제할 수 있습니다.The lease may be released if the lease ID specified on the request matches that associated with the blob. 임대를 해제하면 해제가 완료되는 즉시 다른 클라이언트가 해당 blob에 대한 임대를 획득할 수 있습니다.Releasing the lease allows another client to immediately acquire the lease for the blob as soon as the release is complete.

break: blob에 활성 임대가 포함된 경우 임대를 중단합니다.break: Breaks the lease, if the blob has an active lease. 임대가 중단되면 갱신할 수 없습니다.Once a lease is broken, it cannot be renewed. 권한이 부여된 요청으로 임대를 중단할 수 있으며, 요청 시 일치하는 임대 ID를 지정할 필요가 없습니다.Any authorized request can break the lease; the request is not required to specify a matching lease ID. 임대가 중단되면 임대 중단 기간이 진행되고, 이 기간 동안에는 해당 blob에서 breakrelease를 제외한 어떠한 임대 작업도 수행할 수 없습니다.When a lease is broken, the lease break period is allowed to elapse, during which time no lease operation except break and release can be performed on the blob. 임대가 성공적으로 중단되면 새로운 임대를 획득하기 위해 기다려야 하는 기간(초)이 응답에 표시됩니다.When a lease is successfully broken, the response indicates the interval in seconds until a new lease can be acquired.

중단된 임대도 해제할 수 있으며, 이 경우 다른 클라이언트가 해당 blob에 대한 임대를 즉시 획득할 수 있습니다.A lease that has been broken can also be released, in which case another client may immediately acquire the lease on the blob.
x-ms-lease-break-period: N 선택 사항입니다.Optional. 2012-02-12 이상 버전Version 2012-02-12 and newer. break작업의 경우 임대를 중단하기 전에 임대가 지속되어야 하는 기간(0~60초)입니다.For a break operation, this is the proposed duration of seconds that the lease should continue before it is broken, between 0 and 60 seconds. 이 중단 기간은 남은 임대 기간보다 짧은 경우에만 사용됩니다.This break period is only used if it is shorter than the time remaining on the lease. 남은 임대 기간이 더 길면 이 기간이 사용됩니다.If longer, the time remaining on the lease is used. 중단 기간이 만료되기 전까지는 새로운 임대를 사용할 수 없지만 중단 기간보다 오랫동안 임대가 유지될 수 있습니다.A new lease will not be available before the break period has expired, but the lease may be held for longer than the break period. 이 헤더가 break 작업에 표시되지 않으면 남은 임대 기간 이후에 고정된 임대 중단 기간이 경과되고, 무한 임대는 즉시 중단됩니다.If this header does not appear with a break operation, a fixed-duration lease breaks after the remaining lease period elapses, and an infinite lease breaks immediately.
x-ms-lease-duration: -1 ¦ N 2012-02-12 이상 버전Version 2012-02-12 and newer. 작업에는 허용 되 고 필수 acquire 입니다.Only allowed and required on an acquire operation. 임대 기간(초)을 지정하거나 만료되지 않는 임대의 경우 -1을 지정합니다.Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires. 가능한 유한 임대 기간은 15~60초 사이입니다.A non-infinite lease can be between 15 and 60 seconds. 임대 기간은 renew 또는 change를 사용해서 변경할 수 없습니다.A lease duration cannot be changed using renew or change.
x-ms-proposed-lease-id: <ID> 2012-02-12 이상 버전Version 2012-02-12 and newer. acquire의 경우 선택 사항이고 change의 경우에는 필수입니다.Optional for acquire, required for change. GUID 문자열 형식의 제안된 임대 ID입니다.Proposed lease ID, in a GUID string format. 제안된 임대 ID가 올바른 형식이 아니면 Blob 서비스가 400 (Invalid request)을 반환합니다.The Blob service returns 400 (Invalid request) if the proposed lease ID is not in the correct format. 유효한 GUID 문자열 형식 목록은 Guid 생성자 (문자열) 를 참조 하세요.See Guid Constructor (String) for a list of valid GUID string formats.
Origin 선택 사항입니다.Optional. 요청을 실행한 원본을 지정합니다.Specifies the origin from which the request is issued. 이 헤더가 있으면 응답에 크로스-원본 자원 공유 헤더가 생성됩니다.The presence of this header results in cross-origin resource sharing headers on the response. 자세한 내용은 저장소 서비스에 대 한 CORS 지원 을 참조 하세요.See CORS Support for the Storage Services for details.
x-ms-client-request-id 선택 사항입니다.Optional. 저장소 분석 로깅을 사용 하도록 설정한 경우 분석 로그에 기록 되는 1 KiB 문자 제한이 있는 클라이언트 생성 불투명 값을 제공 합니다.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. 이 헤더를 사용하면 클라이언트 쪽 작업을 서버에서 받은 요청과 관련시키는 것이 좋습니다.Using this header is highly recommended for correlating client-side activities with requests received by the server. 자세한 내용은 스토리지 분석 로깅Azure 로깅: 로그를 사용 하 여 저장소 요청 추적을 참조 하세요.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.

이 작업은 또한 지정된 조건이 충족될 경우에만 작업을 실행하는 조건부 헤더 사용을 지원합니다.This operation also supports the use of conditional headers to execute the operation only if a specified condition is met. 자세한 내용은 Blob 서비스 작업의 조건부 헤더 지정을 참조하세요.For more information, see Specifying Conditional Headers for Blob Service Operations.

요청 본문Request Body

없음None.

샘플 요청Sample Request

다음 예제 요청은 임대를 획득하는 방법을 보여줍니다.The following sample request shows how to acquire a lease:

  
Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=lease HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-02-21  
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=  
  

응답Response

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.The response includes an HTTP status code and a set of response headers.

상태 코드Status Code

임대 작업에 대해 반환되는 성공 상태 코드는 다음과 같습니다.The success status codes returned for lease operations are the following:

  • Acquire: 작업에 성공하면 상태 코드 201(만들어짐)이 반환됩니다.Acquire: A successful operation returns status code 201 (Created).

  • Renew: 작업에 성공하면 상태 코드 200(정상)이 반환됩니다.Renew: A successful operation returns status code 200 (OK).

  • Change: 작업에 성공하면 상태 코드 200(정상)이 반환됩니다.Change: A successful operation returns status code 200 (OK).

  • Release: 작업에 성공하면 상태 코드 200(정상)이 반환됩니다.Release: A successful operation returns status code 200 (OK).

  • Break: 작업에 성공하면 상태 코드 202(수락됨)가 반환됩니다.Break: A successful operation returns status code 202 (Accepted).

상태 코드에 대 한 자세한 내용은 상태 및 오류 코드를 참조 하세요.For information about status codes, see Status and Error Codes.

응답 헤더Response Headers

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다.The response for this operation includes the following headers. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다.The response may also include additional standard HTTP headers. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을따릅니다.All standard headers conform to the HTTP/1.1 protocol specification.

구문Syntax DescriptionDescription
ETag ETag 헤더에는 조건에 따라 작업을 수행하는 데 사용할 수 있는 값이 포함됩니다.The ETag header contains a value that you can use to perform operations conditionally. 자세한 내용은 Blob 서비스 작업에 대 한 조건부 헤더 지정 을 참조 하세요.See Specifying Conditional Headers for Blob Service Operations for more information.

이 헤더는 2013-08-15 이상 버전에 대해 수행된 요청의 경우 반환되며 ETag 값이 따옴표로 표시됩니다.This header is returned for requests made against version 2013-08-15 and later, and the ETag value will be in quotes.

Lease Blob 작업은 이 속성을 수정하지 않습니다.The Lease Blob operation does not modify this property.
Last-Modified Blob을 마지막으로 수정한 날짜/시간입니다.The date/time that the blob was last modified. 날짜 형식은 RFC 1123을 따릅니다.The date format follows RFC 1123. 자세한 내용은 헤더의 날짜-시간 값 표현을 참조 하십시오.For more information, see Representation of Date-Time Values in Headers.

blob의 메타데이터 또는 속성에 대한 업데이트를 포함하여 blob에 대해 쓰기 작업을 수행할 때마다 blob의 마지막 수정 시간이 변경됩니다.Any write operation on the blob, including updates on the blob's metadata or properties, changes the last-modified time of the blob. Lease Blob 작업은 이 속성을 수정하지 않습니다.The Lease Blob operation does not modify this property.
x-ms-lease-id: <id> 임대를 요청하면 Blob 서비스가 고유한 임대 ID를 반환합니다.When you request a lease, the Blob service returns a unique lease ID. 임대가 활성화되어 있는 동안에는 blob에 쓰기, 임대 갱신, 변경 또는 해제를 위한 모든 요청에 이 임대 ID를 포함해야 합니다.While the lease is active, you must include the lease ID with any request to write to the blob, or to renew, change, or release the lease.

또한 갱신 작업에 성공하면 활성 임대의 임대 ID가 반환됩니다.A successful renew operation also returns the lease ID for the active lease.
x-ms-lease-time: seconds 임대 기간에 남은 대략적인 시간(초)입니다.Approximate time remaining in the lease period, in seconds. 이 헤더는 임대 중단 요청이 성공한 경우에만 반환됩니다.This header is returned only for a successful request to break the lease. 중단이 즉각적이면 0이 반환됩니다.If the break is immediate, 0 is returned.
x-ms-request-id 이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다.This header uniquely identifies the request that was made and can be used for troubleshooting the request. 자세한 내용은 API 작업 문제 해결을 참조 하세요.For more information, see Troubleshooting API Operations.
x-ms-version 요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다.Indicates the version of the Blob service used to execute the request. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다.This header is returned for requests made against version 2009-09-19 and later.
Date 응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
Access-Control-Allow-Origin 요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다.Returned if the request includes an Origin header and CORS is enabled with a matching rule. 일치할 경우 이 헤더는 원본 요청 헤더의 값을 반환합니다.This header returns the value of the origin request header in case of a match.
Access-Control-Expose-Headers 요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다.Returned if the request includes an Origin header and CORS is enabled with a matching rule. 클라이언트 또는 요청 실행자에 노출될 응답 헤더의 목록을 반환합니다.Returns the list of response headers that are to be exposed to the client or issuer of the request.
Access-Control-Allow-Credentials 요청에 Origin 헤더가 포함되고 CORS가 모든 원본을 허용하지 않는 일치 규칙과 함께 설정된 경우 반환됩니다.Returned if the request includes an Origin header and CORS is enabled with a matching rule that does not allow all origins. 이 헤더는 true로 설정됩니다.This header will be set to true.
x-ms-client-request-id 이 헤더를 사용 하 여 요청 및 해당 응답의 문제를 해결할 수 있습니다.This header can be used to troubleshoot requests and corresponding responses. 이 헤더의 값은 요청에 있는 경우 헤더의 값과 같으며 x-ms-client-request-id , 값은 최대 1024 표시 ASCII 문자입니다.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. x-ms-client-request-id요청에 헤더가 없는 경우이 헤더는 응답에 표시 되지 않습니다.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

응답 본문Response Body

없음None.

샘플 응답Sample Response

다음은 임대를 획득하기 위한 요청의 샘플 응답입니다.The following is a sample response for a request to acquire a lease:

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

권한 부여Authorization

이 작업은 계정 소유자 및 이 blob 또는 해당 컨테이너에 쓸 수 있는 권한이 있는 공유 액세스 서명을 가진 모든 클라이언트가 호출할 수 있습니다.This operation can be called by the account owner and by any client with a shared access signature that has permission to write to this blob or its container.

설명Remarks

Blob을 임대하면 해당 blob에 대한 배타적인 쓰기 및 삭제 액세스 권한이 제공됩니다.A lease on a blob provides exclusive write and delete access to the blob. 활성 임대 상태로 blob에 쓰기를 수행하려면 클라이언트의 쓰기 요청에 활성 임대 ID가 포함되어야 합니다.To write to a blob with an active lease, a client must include the active lease ID with the write request. 임대 권한은 임대를 획득할 때 지정된 기간 동안 부여되며, 15초에서 1분 사이 또는 기간이 무한일 수 있습니다.The lease is granted for the duration specified when the lease is acquired, which can be between 15 seconds and one minute, or an infinite duration.

클라이언트가 임대를 획득하면 임대 ID가 반환됩니다.When a client acquires a lease, a lease ID is returned. 획득 요청에 임대 ID가 지정되지 않았으면 Blob service가 임대 ID를 생성합니다.The Blob service will generate a lease ID if one is not specified in the acquire request. 클라이언트는 이 임대 ID를 사용해서 임대를 갱신하거나, 해당 ID를 변경하거나, 임대를 해제할 수 있습니다.The client may use this lease ID to renew the lease, change its lease ID, or release the lease.

임대가 활성화되었으면 다음 작업에 대한 요청에 임대 ID가 포함되어야 합니다.When a lease is active, the lease ID must be included in the request for any of the following operations:

임대 ID가 포함되지 않으면 임대된 blob에서 해당 작업이 실패하고 412 – Precondition failed가 표시됩니다.If the lease ID is not included, these operations will fail on a leased blob with 412 – Precondition failed.

다음 작업은 임대 ID가 포함되지 않아도 임대된 blob에서 성공합니다.The following operations succeed on a leased blob without including the lease ID:

활성 임대가 있는 blob에서 수행하는 GET 작업에 대해서는 임대 ID를 포함할 필요가 없습니다.It's not necessary to include the lease ID for GET operations on a blob that has an active lease. 하지만 모든 GET 작업에서 조건부 임대 매개 변수가 지원되므로, 요청에 포함된 임대 ID가 유효한 경우에만 작업이 진행됩니다.However, all GET operations support a conditional lease parameter, where the operation only proceeds if the lease ID included with the request is valid.

컨테이너 삭제를 포함 하 여 활성 임대가 있는 blob이 포함 된 컨테이너에서는 모든 컨테이너 작업이 허용 됩니다.All container operations are permitted on a container that includes blobs with an active lease, including Delete Container. 따라서 컨테이너 내의 blob에 활성 임대가 포함되어 있더라도 컨테이너를 삭제할 수 있습니다.Therefore a container may be deleted even if blobs within it have active leases. 컨테이너를 삭제 하는 권한을 제어 하려면 임대 컨테이너 작업을 사용 합니다.Use the Lease Container operation to control rights to delete a container.

다음 다이어그램은 5가지 임대 상태와 임대 상태를 변경하는 명령 또는 이벤트를 보여줍니다.The following diagram shows the five states of a lease, and the commands or events that cause lease state changes.

Blob 임대 상태 및 상태 변경 트리거Blob lease states and state change triggers

임대 상태Lease States

임대는 해당 임대가 잠금 또는 잠금 해제 상태인지 여부 및 해당 상태의 임대를 갱신할 수 있는지 여부에 따라 5개 상태로 구분됩니다.A lease can be in 5 states, based on whether the lease is locked or unlocked, and whether the lease is renewable in that state. 위 임대 작업은 상태 전환을 일으킵니다.The lease actions above cause state transitions.

갱신 상태Renewal status 임대 잠김Locked lease 잠금 해제 된 임대Unlocked lease
갱신 가능한 임대Renewable lease 임대됨Leased 만료됨Expired
갱신 되지 않은 임대Non-renewable lease 주요 변경Breaking 중단, 사용 가능Broken, Available
  • Available - 임대가 잠금 해제되어 획득할 수 있습니다.Available, the lease is unlocked and can be acquired. 허용 된 작업: acquire .Allowed action: acquire.

  • Leased - 임대가 잠긴 상태입니다.Leased, the lease is locked. 허용 되는 작업: acquire (동일한 임대 ID에만 해당),,, renew change releasebreak .Allowed actions: acquire (same lease ID only), renew, change, release, and break.

  • Expired - 임대 기간이 만료되었습니다.Expired, the lease duration has expired. 허용 되는 작업:,, acquire renew releasebreakAllowed actions: acquire, renew, release, and break.

  • Breaking - 임대가 중단되었지만 중단 기간이 만료될 때까지 임대가 계속 잠긴 상태로 유지됩니다.Breaking, lease has been broken, but the lease will continue to be locked until the break period has expired. 허용 되는 작업: releasebreak .Allowed actions: release and break.

  • Broken - 임대가 중단되었고 중단 기간이 만료되었습니다.Broken, lease has been broken, and the break period has expired. 허용 되는 작업: acquire , releasebreakAllowed actions: acquire, release, and break.

임대가 만료된 후에는 blob가 수정되거나 다시 임대될 때까지 Blob 서비스에서 임대 ID가 유지 관리됩니다.Once a lease has expired, the lease ID is maintained by the Blob service until the blob is modified or leased again. 클라이언트는 만료된 임대 ID를 사용해서 임대를 갱신 또는 해제하도록 시도할 수 있으며, 작업에 성공하면 임대 ID의 마지막 유효 상태 이후에 blob가 변경되지 않았음을 알 수 있습니다.A client may attempt to renew or release their lease using their expired lease ID and know that if the operation is successful, the blob has not been changed since the lease ID was last valid.

클라이언트가 이전 임대 ID를 사용해서 임대를 갱신하거나 해제하려고 시도할 때 요청이 실패하면 해당 임대의 마지막 유효 상태 이후에 blob가 수정되었거나 다시 임대되었음을 알 수 있습니다.If the client attempts to renew or release a lease with their previous lease ID and the request fails, the client then knows that the blob was modified or leased again since their lease was last active. 이 경우에는 클라이언트가 blob에 대해 새로운 임대를 획득해야 합니다.The client must then acquire a new lease on the blob.

임대가 명시적으로 해제되지 않고 만료될 경우, 클라이언트가 blob에서 새로운 임대를 획득하려면 먼저 최대 1분까지 기다려야 할 수 있습니다.If a lease expires rather than being explicitly released, a client may need to wait up to one minute before a new lease can be acquired for the blob. 하지만 blob가 수정되지 않은 경우에는 클라이언트가 해당 임대 ID를 사용해서 임대를 즉시 갱신할 수 있습니다.However, the client can renew the lease with their lease ID immediately if the blob has not been modified.

스냅숏은 읽기 전용이기 때문에 blob 스냅숏에 대해서는 임대 권한을 부여할 수 없습니다.Note that a lease cannot be granted for a blob snapshot, since snapshots are read-only. 스냅숏에 대해 임대를 요청하면 상태 코드 400(잘못된 요청)이 발생합니다.Requesting a lease against a snapshot results in status code 400 (Bad Request).

blob의 Last-Modified-Time 속성은 Lease Blob 호출로 업데이트되지 않습니다.The blob's Last-Modified-Time property is not updated by calls to Lease Blob.

다음 표에서는 다양한 상태의 임대가 포함된 blob에 대한 작업의 결과를 보여줍니다.The following tables show outcomes of actions on blobs with leases in various lease states. 문자 (A), (B), (C)는 임대 ID를 나타내고, (X)는 Blob 서비스로 생성된 임대 ID를 나타냅니다.Letters (A), (B), and (C) represent lease IDs, and (X) represents a lease ID generated by the Blob service.

blob에 대한 임대 상태별 사용 시도 결과Outcomes of use attempts on blobs by lease state

작업Action 사용 가능Available 임대됨 (A)Leased (A) 중단 (A)Breaking (A) 중단됨 (A)Broken (A) 만료됨 (A)Expired (A)
쓰기 사용 (A)Write using (A) 실패 (412)Fails (412) 임대됨 (A), 쓰기 성공Leased (A), write succeeds 중단 (A), 쓰기 성공Breaking (A), write succeeds 실패 (412)Fails (412) 실패 (412)Fails (412)
쓰기 사용 (B)Write using (B) 실패 (412)Fails (412) 실패 (409)Fails (409) 실패 (412)Fails (412) 실패 (412)Fails (412) 실패 (412)Fails (412)
쓰기, 임대가 지정되지 않음Write, no lease specified 사용할 수 있음, 쓰기 성공Available, write succeeds 실패 (412)Fails (412) 실패 (412)Fails (412) 사용할 수 있음, 쓰기 성공Available, write succeeds 사용할 수 있음, 쓰기 성공Available, write succeeds
읽기 사용 (A)Read using (A) 실패 (412)Fails (412) 임대됨 (A), 읽기 성공Leased (A), read succeeds 중단 (A), 읽기 성공Breaking (A), read succeeds 실패 (412)Fails (412) 실패 (412)Fails (412)
읽기 사용 (B)Read using (B) 실패 (412)Fails (412) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (412)Fails (412) 실패 (412)Fails (412)
읽기, 임대가 지정되지 않음Read, no lease specified 사용할 수 있음, 읽기 성공Available, read succeeds 임대됨 (A), 읽기 성공Leased (A), read succeeds 중단 (A), 읽기 성공Breaking (A), read succeeds 중단됨 (A), 읽기 성공Broken (A), read succeeds 만료됨 (A), 읽기 성공Expired (A), read succeeds

blob에 대한 임대 상태별 임대 작업 결과Outcomes of lease operations on blobs by lease state

작업Action 사용 가능Available 임대됨 (A)Leased (A) 중단 (A)Breaking (A) 중단됨 (A)Broken (A) 만료됨 (A)Expired (A)
Acquire, 제안된 임대 ID 없음Acquire, no proposed lease ID 임대됨 (X)Leased (X) 실패 (409)Fails (409) 실패 (409)Fails (409) 임대됨 (X)Leased (X) 임대됨 (X)Leased (X)
Acquire (A)Acquire (A) 임대됨 (A)Leased (A) 임대됨 (A), 새 기간Leased (A), new duration 실패 (409)Fails (409) 임대됨 (A)Leased (A) 임대됨 (A)Leased (A)
Acquire (B)Acquire (B) 임대됨 (B)Leased (B) 실패 (409)Fails (409) 실패 (409)Fails (409) 임대됨 (B)Leased (B) 임대됨 (B)Leased (B)
Break, 기간=0Break, period=0 실패 (409)Fails (409) 중단됨 (A)Broken (A) 중단됨 (A)Broken (A) 중단됨 (A)Broken (A) 중단됨 (A)Broken (A)
Break, 기간>0Break, period>0 실패 (409)Fails (409) 중단 (A)Breaking (A) 중단 (A)Breaking (A) 중단됨 (A)Broken (A) 중단됨 (A)Broken (A)
Change, (A)에서 (B)Change, (A) to (B) 실패 (409)Fails (409) 임대됨 (B)Leased (B) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409)
Change, (B)에서 (A)Change, (B) to (A) 실패 (409)Fails (409) 임대됨 (A)Leased (A) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409)
Change, (B)에서 (C)Change, (B) to (C) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409)
Renew (A)Renew (A) 실패 (409)Fails (409) 임대됨 (A), 만료 시간 재설정Leased (A), expiration clock reset 실패 (409)Fails (409) 실패 (409)Fails (409) 임대됨 (A), blob가 수정되지 않은 경우.Leased(A), if blob has not been modified.

실패 (409), blob가 수정된 경우.Fails (409) if blob has been modified.
Renew (B)Renew (B) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409)
Release (A)Release (A) 실패 (409)Fails (409) 사용 가능Available 사용 가능Available 사용 가능Available 사용 가능Available
Release (B)Release (B) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409) 실패 (409)Fails (409)
기간 만료Duration expires 사용 가능Available 만료됨 (A)Expired (A) 중단됨 (A)Broken (A) 중단됨 (A)Broken (A) 만료됨 (A)Expired (A)

Changes to Lease Blob introduced in version 2012-02-12

다음 목록은 2012-02-12 버전에 소개된 Blob 임대 동작에 대한 변경 내용을 보여줍니다.The following list specifies changes to Lease Blob behavior introduced in version 2012-02-12.

  • 임대 획득을 위한 Blob 임대 호출에는 임대 기간 헤더가 포함되어야 합니다.A call to Lease Blob to acquire a lease now must include a lease duration header. 임대 기간을 지정하지 않고 임대를 획득하려고 시도하면 작업이 실패하고 400 Bad Request – Missing required header가 표시됩니다.Trying to acquire a lease without specifying a lease duration will fail with 400 Bad Request – Missing required header.

  • 임대를 해제한 후에는 더 이상 임대를 갱신할 수 없습니다.You can no longer renew a lease after releasing it. 이렇게 하려고 시도하면 작업이 실패하고 409 Conflict – The lease ID specified did not match the lease ID for the blob가 표시됩니다.Trying to do so will fail with 409 Conflict – The lease ID specified did not match the lease ID for the blob. 해제를 시도한 후 갱신을 호출한 응용 프로그램은 해제 호출로부터 ETag를 저장하고 blob가 변경되지 않았을 때만 임대를 획득할 수 있도록 If-Match 조건부 헤더로 획득을 호출합니다.Applications that called release and then called renew must now save the ETag from the release call and then call acquire with an If-Match conditional header to only acquire the lease when the blob is unchanged.

  • 임대를 해제한 후에는 더 이상 임대를 중단할 수 없습니다.You can no longer break a lease after releasing it. 이렇게 하려고 시도하면 작업이 실패하고 409 Conflict – There is currently no lease on the blob가 표시됩니다.Attempting to do this will now fail with 409 Conflict – There is currently no lease on the blob.

  • 이제 중단 작업이 멱등원이 되도록 중단 중이거나 중단된 임대를 중단할 수 있습니다.You can now break a breaking or broken lease, making break operations idempotent. 이전 버전에서는 이렇게 할 경우 작업이 실패하고 409 Conflict – The lease has already been broken and cannot be broken again이 표시되었습니다.In previous versions, this failed with 409 Conflict – The lease has already been broken and cannot be broken again. 이러한 변경 덕분에 중단 기간을 단축시킬 수 있습니다.This change allows you to shorten the duration of a break. 중단 중인 상태이고 임대 기간이 남은 중단 기간보다 짧은 임대를 중단할 경우 짧은 기간이 사용됩니다.If you break a lease that is in breaking state and include a shorter duration than the remaining break period, your shorter duration is used.

참조See also

새 Blob 임대 기능: 무한 임대, 더 작은 임대 시간 등 New Blob Lease Features: Infinite Leases, Smaller Lease Times, and More
Azure Storage에 대 한 요청 권한 부여 Authorize requests to Azure Storage
상태 및 오류 코드 Status and Error Codes
Blob 서비스 오류 코드 Blob Service Error Codes
컨테이너 임대Lease Container