Recurso compartido de concesión
La Lease Share
operación establece y administra un bloqueo en un recurso compartido de archivos de Azure o en una instantánea de recurso compartido. Esta API es totalmente compatible, pero es una API de administración heredada. En su lugar, use Recursos compartidos de archivos: concesión, proporcionado por el proveedor de recursos de almacenamiento (Microsoft.Storage). Para obtener más información sobre la interacción mediante programación con FileShare
los recursos mediante el proveedor de recursos de almacenamiento, consulte Operaciones en FileShares.
La duración del bloqueo puede ser de 15 a 60 segundos, o puede ser infinita. Puede llamar a la Lease Share
operación en uno de los modos siguientes:
-
Acquire
: para solicitar una nueva concesión. -
Renew
: para renovar una concesión existente. -
Change
: para cambiar el identificador de una concesión existente. -
Release
: para liberar la concesión si ya no es necesaria, de modo que otro cliente pueda adquirir inmediatamente una concesión en el recurso compartido de archivos. -
Break
: para finalizar 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.
Nota
La Lease Share
operación está disponible en la versión 2020-02-10 y posteriores.
Disponibilidad del protocolo
Protocolo de recurso compartido de archivos habilitado | Disponible |
---|---|
SMB | |
NFS |
Request
Puede construir la Lease Share
solicitud como se indica a continuación. Se recomienda HTTPS. Reemplace myaccount por el nombre de la cuenta de almacenamiento.
Método | URI de solicitud | Versión de HTTP |
---|---|---|
PUT |
https://myaccount.file.core.windows.net/myshare?comp=lease&restype=share |
HTTP/1.1 |
PUT |
https://myaccount.file.core.windows.net/myshare?comp=lease&sharesnapshot=<DateTime>&restype=share |
HTTP/1.1 |
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: <action> |
acquire : solicita una nueva concesión. Si el recurso compartido de archivos no tiene una concesión activa, Azure Files crea una concesión en el recurso compartido de archivos y devuelve un nuevo identificador de concesión. Si el recurso compartido de archivos tiene una concesión activa, solo puede solicitar una nueva concesión mediante el identificador de concesión activo. Sin embargo, puede especificar un nuevo x-ms-lease duration , incluido el negativo (-1) para una concesión que nunca expira.renew : renueva la concesión. Puede renovar la concesión si el identificador de concesión especificado en la solicitud coincide con el asociado al recurso compartido de archivos. Tenga en cuenta que puede renovar la concesión incluso si ha expirado, siempre y cuando el recurso compartido de archivos no se haya concedido de nuevo desde la expiración de esa concesión. Cuando se renueva una concesión, el reloj que controla su duración se reinicia.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 recurso compartido de archivos. La liberación de la concesión permite a otro cliente adquirir inmediatamente la concesión del recurso compartido de archivos, en cuanto se complete la versión.break : interrumpa la concesión si el recurso compartido de archivos tiene una concesión activa. Una vez interrumpida una concesión, no se puede renovar. Cualquier solicitud autorizada puede interrumpir la concesión. La solicitud no es necesaria para especificar un identificador de concesión coincidente. Cuando se interrumpe una concesión, el período de interrupción de concesión puede transcurrir y break son release las únicas operaciones que puede realizar en el recurso compartido de archivos durante este tiempo. Cuando una concesión se interrumpe correctamente, la respuesta indica el intervalo en segundos que debe transcurrir hasta que se pueda obtener una nueva concesión.Una concesión que se ha estado interrumpida también puede liberarse. Un cliente puede adquirir inmediatamente una concesión de recurso compartido de archivos que se ha liberado. |
x-ms-lease-break-period: N |
Opcional. Para una break operación, esta es la duración propuesta que la concesión debe continuar antes de que se rompa, en segundos, entre 0 y 60. Este período de interrupción solo se usa si es más corto que el tiempo restante en la concesión. Si es más largo, se utiliza el tiempo restante de la concesión. Una nueva concesión no está disponible antes de que haya expirado el período de interrupción, pero la concesión se puede mantener durante más tiempo que el período de interrupción. Si este encabezado no aparece con una break operación, se interrumpe una concesión de duración fija después de que transcurre el período de concesión restante y se interrumpe inmediatamente una concesión infinita. |
x-ms-lease-duration: -1 |
Es obligatorio para acquire . Especifica la duración de la concesión, en segundos, o bien un valor negativo (-1) para una concesión que no expira nunca. Un concesión no infinita puede durar entre 15 y 60 segundos. Una duración de concesión no se puede cambiar mediante renew o change . |
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 Blob Storage 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. |
Origin |
Opcional. Especifica el origen del que se emitirá la solicitud. La presencia de este encabezado da lugar a encabezados de uso compartido de recursos entre orígenes (CORS) en la respuesta. Consulte Compatibilidad con CORS para los servicios de almacenamiento para obtener más información. |
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. |
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?restype=share&comp=lease HTTP/1.1
Request Headers:
x-ms-version: 2020-02-10
x-ms-lease-action: acquire
x-ms-lease-duration: -1
x-ms-proposed-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-date: Thu, 26 Jan 2012 23:30:18 GMT
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). -
Renew
: una operación correcta devuelve el código de estado 200 (Correcto). -
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 |
para ETag el recurso compartido de archivos. |
Last-Modified |
Devuelve la fecha y hora en que se modificó por última vez el recurso compartido de archivos. Para obtener más información, vea Representación de valores de fecha y hora en encabezados. Cualquier operación que modifique el recurso compartido de archivos, o sus propiedades o metadatos, actualiza la hora de última modificación. Esto incluye establecer los permisos del recurso compartido de archivos. Las operaciones en blobs no afectan a la hora de la última modificación del recurso compartido de archivos. |
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 eliminar el recurso compartido de archivos, o para renovar, 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 |
Tiempo restante aproximado del período de concesión, en segundos. Este encabezado solo se devuelve para una solicitud correcta de interrupción de la concesión. Si la interrupción es inmediata, 0 se devuelve. |
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 la API FileREST que se usa 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. |
Access-Control-Allow-Origin |
Se devuelve si la solicitud incluye un Origin encabezado y CORS está habilitado con una regla coincidente. Este encabezado devuelve el valor del encabezado Origin de la solicitud en caso de que haya una coincidencia. |
Access-Control-Expose-Headers |
Se devuelve si la solicitud incluye un Origin encabezado y CORS está habilitado con una regla coincidente. Devuelve la lista de encabezados de respuesta que se van a exponer al cliente o el emisor de la solicitud. |
Access-Control-Allow-Credentials |
Se devuelve si la solicitud incluye un Origin encabezado y CORS está habilitado con una regla coincidente que no permite todos los orígenes. Este encabezado se establece en true . |
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: 2020-02-10
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5
Date: Thu, 26 Jan 2012 23:30:18 GMT
Authorization
Solo el propietario de la cuenta puede llamar a esta operación.
Comentarios
Una concesión en un recurso compartido de archivos proporciona acceso exclusivo de eliminación al recurso compartido de archivos. Las operaciones de obtención de recursos compartidos de archivos se realizarán correctamente en un recurso compartido de archivos alquilado, sin incluir el identificador de concesión. Establecer operaciones de recurso compartido de archivos requerirá el identificador de concesión del recurso compartido de archivos. Si el identificador de concesión no se incluye en las operaciones de conjunto de recursos compartidos de archivos, se produce un error en la operación 412 (error de condición previa). La concesión se concede durante el tiempo especificado cuando se adquiere la concesión, que puede ser de 15 a 60 segundos, o una duración infinita.
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 renovar la concesión, cambiar su identificador de concesión o liberar la concesión. En el diagrama siguiente se muestran los cinco estados de una concesión y los comandos o los eventos que provocan cambios en el estado de la misma.
Una concesión puede estar en cualquiera de estos 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.
Estado de renovación | Concesión bloqueada | Concesión desbloqueada |
---|---|---|
Concesión renovable | Leased | Expirada |
Concesión no renovable | Problemático | Broken, Available |
-
Available
: la concesión está desbloqueada y se puede adquirir. Acción permitida:acquire
. -
Leased
: la concesión está bloqueada. Acciones permitidas:acquire
(solo con el mismo identificador de concesión),renew
,change
,release
ybreak
. -
Expired
: la duración de la concesión ha expirado. Acciones permitidas:acquire
,renew
,release
ybreak
. -
Breaking
, la concesión se ha interrumpido, pero la concesión seguirá bloqueada hasta que haya expirado el período de interrupción. Acciones permitidas:release
ybreak
. -
Broken
, la concesión se ha interrumpido y el período de interrupción ha expirado. Acciones permitidas:acquire
,release
ybreak
.
Azure Files mantiene el identificador de concesión después de que haya expirado una concesión de recurso compartido de archivos. Un cliente puede renovar o liberar la concesión mediante su identificador de concesión expirado. Si el cliente intenta renovar o liberar una concesión expirada con su identificador de concesión anterior y se produce un error en la solicitud, significa que el recurso compartido de archivos se arrendó de nuevo o se eliminó desde que su concesión estaba activa por última vez. Si una concesión expira en lugar de publicarse explícitamente, es posible que un cliente tenga que esperar hasta un minuto antes de que se pueda adquirir una nueva concesión para el recurso compartido de archivos. Sin embargo, el cliente puede renovar inmediatamente la concesión con el identificador de concesión expirada.
La propiedad del recurso compartido de Last-Modified-Time
archivos no se actualiza mediante llamadas a Lease Share
.
En las tablas siguientes se muestran los resultados de realizar distintas acciones sobre contenedores con concesiones en distintos 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 los intentos de uso en recursos compartidos por estado de concesión
Acción | Disponible | Leased (A) | Breaking (A) | Broken (A) | Expired (A) |
---|---|---|---|---|---|
Eliminar con (A) | Error (412) | Leased (A), la eliminación se realiza correctamente | Breaking (A), la eliminación se realiza correctamente | Error (412) | Error (412) |
Eliminar con (B) | Error (412) | Error (409) | Error (412) | Error (412) | Error (412) |
Eliminar sin especificar la concesión | Available, la eliminación se realiza correctamente | Error (412) | Error (412) | Available, la eliminación se realiza correctamente | Available, la eliminación se realiza correctamente |
Otras operaciones con (A) | Error (412) | Leased (A), la operación se realiza correctamente | Breaking (A), la operación se realiza correctamente | Error (412) | Error (412) |
Otras operaciones con (B) | Error (412) | Error (409) | Error (409) | Error (412) | Error (412) |
Operaciones, sin concesión especificada | Available, la operación se realiza correctamente | Leased (A), la operación se realiza correctamente | Breaking (A), la operación se realiza correctamente | Broken (A), la operación se realiza correctamente | Expired (A), la operación se realiza correctamente |
Resultados de las operaciones de concesión en recursos compartidos por estado de concesión
Acción | Disponible | Leased (A) | Breaking (A) | Broken (A) | Expired (A) |
---|---|---|---|---|---|
Acquire sin identificador de concesión propuesto |
Leased (X) | Error (409) | Error (409) | Leased (X) | Leased (X) |
Acquire (A) |
Leased (A) | Leased (A), nueva duración | Error (409) | Leased (A) | Leased (A) |
Acquire (B) |
Leased (B) | Error (409) | Error (409) | Leased (B) | Leased (B) |
Break , período=0 |
Error (409) | Broken (A) | Broken (A) | Broken (A) | Broken (A) |
Break , período>0 |
Error (409) | Breaking (A) | Breaking (A) | Broken (A) | Broken (A) |
Change , (A) a (B) |
Error (409) | Leased (B) | Error (409) | Error (409) | Error (409) |
Change , (B) a (A) |
Error (409) | Leased (A) | Error (409) | Error (409) | Error (409) |
Change , (B) a (C) |
Error (409) | Error (409) | Error (409) | Error (409) | Error (409) |
Renew (A) |
Error (409) | Leased (A), reloj de caducidad restablecido | Error (409) | Error (409) | Leased (A) |
Renew (B) |
Error (409) | Error (409) | Error (409) | Error (409) | Error (409) |
Release (A) |
Error (409) | Disponible | Disponible | Disponible | Disponible |
Release (B) |
Error (409) | Error (409) | Error (409) | Error (409) | Error (409) |
La duración expira | Disponible | Expired (A) | Broken (A) | Broken (A) | Expired (A) |