Compartir a través de


Archivo de concesión

La Lease File operación crea y administra un bloqueo en un archivo para las operaciones de escritura y eliminación. Lease File es compatible con la versión 2019-02-02 y posteriores.

Puede llamar a la Lease File operación en uno de los modos siguientes:

  • Acquire, para solicitar una nueva concesión.
  • Change, para cambiar el identificador de una concesión existente.
  • Release, para liberar la concesión si ya no es necesaria, para que otro cliente pueda adquirir inmediatamente una concesión en el archivo.
  • Break, para finalizar forzosamente la concesión, pero asegúrese de que otro cliente no pueda adquirir una nueva concesión hasta que haya expirado el período de concesión actual.

Disponibilidad del protocolo

Protocolo de recurso compartido de archivos habilitado Disponible
SMB Sí
NFS No

Solicitud

Puede construir la Lease File solicitud como se indica a continuación. Se recomienda HTTPS.

Método URI de solicitud Versión de HTTP
Put https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1

Reemplace los componentes de la ruta de acceso que se muestran en el URI de solicitud por los suyos de la siguiente manera:

Componente de ruta de acceso Descripción
myaccount El nombre de la cuenta de almacenamiento.
myshare El nombre del recurso compartido de archivos.
mydirectorypath Opcional. La ruta de acceso al directorio.
myfile Nombre del archivo.

Parámetros del identificador URI

Puede especificar el siguiente parámetro adicional en el URI de solicitud.

Parámetro Descripción
timeout Opcional. El parámetro timeout se expresa en segundos. Para obtener más información, consulte Configuración de tiempos de espera para operaciones de Azure Files.

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales.

Encabezado de solicitud Descripción
Authorization Necesario. Especifica el esquema de autorización, el nombre de la cuenta y la firma. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
Date o x-ms-date Necesario. Especifica la hora universal coordinada (UTC) de la solicitud. Para obtener más información, vea Autorización de solicitudes a Azure Storage.
x-ms-version Opcional. Especifica la versión de la operación que se utiliza para esta solicitud. Para obtener más información, vea Versiones de los servicios de Azure Storage.
x-ms-lease-id: <ID> Obligatorio para renovar, cambiar o liberar la concesión.

Puede especificar el valor de x-ms-lease-id en cualquier formato de cadena GUID válido. Consulte Guid Constructor (String) para obtener una lista de formatos válidos.
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> acquire: solicita una nueva concesión. Si el archivo no tiene una concesión activa, Azure Files crea una concesión en el archivo y devuelve un nuevo identificador de concesión. Si el archivo tiene una concesión activa, solo puede solicitar una nueva concesión mediante el identificador de concesión activo.

change: cambia el identificador de concesión de una concesión activa. Debe change incluir el identificador de concesión actual en x-ms-lease-idy un nuevo identificador de concesión en x-ms-proposed-lease-id.

release: libera la concesión. Puede liberar la concesión si el identificador de concesión especificado en la solicitud coincide con el asociado al archivo. La liberación de la concesión permite a otro cliente adquirir inmediatamente la concesión para el archivo, tan pronto como se complete la versión.

break: interrumpe la concesión, si el archivo tiene una concesión activa. Cualquier solicitud autorizada puede interrumpir la concesión. La solicitud no es necesaria para especificar un identificador de concesión coincidente. Una concesión infinita se interrumpe inmediatamente.
x-ms-lease-duration: -1 Permitido y necesario solo en una acquire operación. Es necesario que sea -1, para indicar una concesión que nunca expira.
x-ms-proposed-lease-id: <ID> Opcional para acquire, y es necesario para change. Identificador de concesión propuesto, con formato de cadena de GUID. Azure Files devuelve 400 (Invalid request) si el identificador de concesión propuesto no tiene el formato correcto. Consulte Guid Constructor (String) para obtener una lista de formatos válidos.
x-ms-client-request-id Opcional. Proporciona un valor opaco generado por el cliente con un límite de caracteres de 1 kibibyte (KiB) que se registra en los registros cuando se configura el registro. Se recomienda encarecidamente usar este encabezado para correlacionar las actividades del lado cliente con las solicitudes que recibe el servidor. Para obtener más información, vea Supervisar Azure Files.
x-ms-file-request-intent Obligatorio si Authorization el encabezado especifica un token de OAuth. El valor aceptable es backup. Este encabezado especifica que se debe conceder o Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action si se incluyen en la directiva de RBAC asignada a la identidad autorizada mediante el Authorization encabezado . Disponible para la versión 2022-11-02 y posteriores.
x-ms-allow-trailing-dot: { <Boolean> } Opcional. Versión 2022-11-02 y posteriores. El valor booleano especifica si se debe recortar o no un punto final presente en la dirección URL de la solicitud. Para obtener más información, consulte Nomenclatura y referencia a recursos compartidos, directorios, archivos y metadatos.

Cuerpo de la solicitud

Ninguno.

Solicitud de ejemplo

La solicitud de ejemplo siguiente muestra cómo adquirir una concesión:

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=  

Response

La respuesta incluye un código de estado HTTP y un conjunto de encabezados de respuesta.

status code

Los códigos de estado correctos devueltos para las operaciones de concesión son los siguientes:

  • Acquire: una operación correcta devuelve el código de estado 201 (Creada).
  • Change: una operación correcta devuelve el código de estado 200 (Correcto).
  • Release: una operación correcta devuelve el código de estado 200 (Correcto).
  • Break: una operación correcta devuelve el código de estado 202 (Aceptada).

Para obtener información sobre los códigos de estado, vea Códigos de estado y de error.

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir encabezados HTTP adicionales y estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Sintaxis Descripción
ETag Contiene un valor que puede usar para realizar operaciones condicionalmente, entre comillas. La Lease File operación no modifica esta propiedad.
Last-Modified La fecha y la hora en la que se modificó por última vez el archivo. Para obtener más información, vea Representación de valores de fecha y hora en encabezados.

Cualquier operación de escritura en el archivo, incluidas las actualizaciones de los metadatos o propiedades del archivo, cambia la hora de la última modificación del archivo. La Lease File operación no modifica esta propiedad.
x-ms-lease-id: <id> Al solicitar una concesión, Azure Files devuelve un identificador de concesión único. Mientras la concesión está activa, debe incluir el identificador de concesión con cualquier solicitud para escribir en el archivo, o para cambiar o liberar la concesión.

Una operación renew correcta también devuelve el identificador de concesión para la concesión activa.
x-ms-lease-time: seconds Solo se devuelve para que una solicitud correcta interrumpa la concesión. 0 se devuelve para interrupciones inmediatas.
x-ms-request-id Identifica de forma única la solicitud que se realizó y se puede usar para solucionar problemas de la solicitud. Para más información, consulte Solución de problemas de operaciones de API.
x-ms-version Indica la versión de Azure Files usada para ejecutar la solicitud.
Date Valor de fecha y hora UTC que indica la hora a la que se inició la respuesta. El servicio genera este valor.
x-ms-client-request-id Se puede usar para solucionar problemas de solicitudes y respuestas correspondientes. El valor de este encabezado es igual al valor del x-ms-client-request-id encabezado, si está presente en la solicitud. El valor tiene como máximo 1024 caracteres ASCII visibles. Si el x-ms-client-request-id encabezado no está presente en la solicitud, no estará presente en la respuesta.

Response body

Ninguno.

Respuesta de muestra

A continuación se muestra una respuesta de ejemplo para una solicitud de adquisición de una concesión:

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>  

Authorization

El propietario de la cuenta puede llamar a esta operación. Además, cualquier cliente con una firma de acceso compartido que tenga permiso para escribir en este archivo o su recurso compartido puede hacerlo.

Comentarios

Una concesión en un archivo proporciona acceso exclusivo de escritura y eliminación al archivo. Para escribir en un archivo con una concesión activa, un cliente debe incluir el identificador de concesión activo con la solicitud de escritura. La concesión se concede durante un período infinito.

Cuando un cliente adquiere una concesión, se devuelve un identificador de concesión. Azure Files genera un identificador de concesión si no se especifica uno en la solicitud de adquisición. El cliente puede usar este identificador de concesión para cambiar su identificador de concesión o liberar la concesión.

Cuando una concesión está activa, se debe incluir el identificador de concesión en la solicitud para cualquiera de las operaciones siguientes:

Si no se incluye el identificador de concesión, estas operaciones producirán un error en un archivo concedido, con 412 – Precondition failed.

Las siguientes operaciones se realizan correctamente en un archivo alquilado, sin incluir el identificador de concesión:

No es necesario incluir el identificador de concesión para GET las operaciones en un archivo que tiene una concesión activa. Sin embargo, todas las GET operaciones admiten un parámetro de concesión condicional. En este tipo de parámetro, la operación solo continúa si el identificador de concesión incluido con la solicitud es válido.

Todas las operaciones de recurso compartido se permiten en un recurso compartido que incluya archivos con una concesión activa, incluido Eliminar recurso compartido. Por lo tanto, puede eliminar un recurso compartido incluso si los archivos que contiene tienen concesiones activas.

Estados de concesión

En el diagrama siguiente se muestran los tres estados de una concesión y los comandos o eventos que provocan cambios de estado de concesión.

Diagrama que muestra los estados de concesión de archivos y los desencadenadores de cambio de estado.

Una concesión puede estar en tres estados, en función de si la concesión está bloqueada o desbloqueada, y si la concesión es renovable en ese estado. Las acciones de concesión que se muestran en el diagrama anterior provocan transiciones de estado.

  • Available: la concesión está desbloqueada y se puede adquirir. Acción permitida: acquire.
  • Leased: la concesión está bloqueada. Acciones permitidas: acquire (solo el mismo identificador de concesión), change, releasey break.
  • Broken: la concesión se ha roto. Acciones permitidas: acquire, release y break.

Tenga en cuenta que no se puede conceder una concesión para un archivo en una instantánea de recurso compartido, ya que las instantáneas son de solo lectura. La solicitud de una concesión en un archivo de una instantánea de recurso compartido da como resultado el código de estado 400 (solicitud incorrecta).

Si una concesión de archivo está en estado Broken y una operación Put Range escribe en el archivo, el estado de concesión cambiará a Disponible. Sin embargo, si el archivo tiene establecido el atributo de solo lectura, el servidor devolverá el conflicto 409.

La propiedad del Last-Modified-Time archivo no se actualiza mediante llamadas a Lease File.

En las tablas siguientes se muestran resultados de acciones en archivos con concesiones en varios estados de concesión. Las letras (A), (B) y (C) representan identificadores de concesión y (X) representan un identificador de concesión generado por Azure Files.

Resultados de intentos de uso en archivos por estado de concesión

Acción Disponible Leased (A) Broken (A)
Escribir mediante (A) Error (412) Leased (A), la escritura se realiza correctamente Error (412)
Escribir mediante (B) Error (412) Error (409) Error (412)
Escribir sin especificar la concesión Available, la escritura se realiza correctamente Error (412) Available, la escritura se realiza correctamente
Lectura mediante (A) Error (412) Leased (A), la lectura se realiza correctamente Error (412)
Lectura mediante (B) Error (412) Error (409) Error (412)
Leer sin especificar la concesión Available, la lectura se realiza correctamente Leased (A), la lectura se realiza correctamente Broken (A), la lectura se realiza correctamente

Resultados de las operaciones de concesión en archivos por estado de concesión

Acción Disponible Leased (A) Broken (A)
Acquire sin identificador de concesión propuesto Leased (X) Error (409) Leased (X)
Acquire (A) Leased (A) Leased (A) Leased (A)
Acquire (B) Leased (B) Error (409) Leased (B)
Break Error (409) Broken (A) Broken (A)
Change, (A) a (B) Error (409) Leased (B) Error (409)
Change, (B) a (A) Error (409) Leased (A) Error (409)
Change, (B) a (C) Error (409) Error (409) Error (409)
Release (A) Error (409) Disponible Disponible
Release (B) Error (409) Error (409) Error (409)

Consulte también