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 | |
NFS |
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-id y 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/action Microsoft.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:
- Crear archivo
- Set File Metadata
- Establecer propiedades del archivo
- Eliminar archivo
- Put Range
- Copiar archivo (id. de concesión necesario para el archivo de destino).
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:
- Get File
- Obtener metadatos del archivo
- Obtener propiedades del archivo
- Enumerar intervalos
- Enumerar directorios y archivos
- Copiar archivo (no se necesita ningún identificador de concesión para el archivo de origen).
-
Archivo de concesión (API REST) ( no se necesita ningún identificador de concesión para
x-ms-lease-action: break
).
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.
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
,release
ybreak
. -
Broken
: la concesión se ha roto. Acciones permitidas:acquire
,release
ybreak
.
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) |