Compartir a través de


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 Sí
NFS Sí

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-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 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.

Diagrama de los estados de concesión del recurso compartido de archivos y desencadenadores de cambio de estado.

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 y break.
  • Expired: la duración de la concesión ha expirado. Acciones permitidas: acquire, renew, release y break.
  • 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 y break.
  • Broken, la concesión se ha interrumpido y el período de interrupción ha expirado. Acciones permitidas: acquire, release y break.

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)