Partilha de Concessão

A Lease Share operação estabelece e gere um bloqueio numa partilha de ficheiros do Azure ou num instantâneo de partilha. Esta API é totalmente suportada, mas é uma API de gestão legada. Em vez disso, utilize Partilhas de Ficheiros – Concessão, fornecida pelo fornecedor de recursos de armazenamento (Microsoft.Storage). Para saber mais sobre a interação programática com recursos através FileShare do fornecedor de recursos de armazenamento, veja Operações em FileShares.

A duração do bloqueio pode ser de 15 a 60 segundos ou pode ser infinita. Pode chamar a Lease Share operação num dos seguintes modos:

  • Acquire: Para pedir uma nova concessão.
  • Renew: Para renovar uma concessão existente.
  • Change: Para alterar o ID de uma concessão existente.
  • Release: Para libertar a concessão se já não for necessária, para que outro cliente possa adquirir imediatamente uma concessão contra a partilha de ficheiros.
  • Break: Para terminar a concessão, mas certifique-se de que outro cliente não pode adquirir uma nova concessão até que o período de concessão atual expire.

Nota

A Lease Share operação está disponível na versão 2020-02-10 e posterior.

Disponibilidade do protocolo

Protocolo de partilha de ficheiros ativado Disponível
SMB Yes
NFS Yes

Pedir

Pode construir o pedido da Lease Share seguinte forma. É recomendado HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento.

Método URI do pedido Versão 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 URI

Pode especificar o seguinte parâmetro adicional no URI do pedido.

Parâmetro Description
timeout Opcional. O timeout parâmetro é expresso em segundos. Para obter mais informações, veja Setting timeouts for Ficheiros do Azure operations (Definir tempos limite para operações de Ficheiros do Azure).

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais.

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Opcional. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-lease-id: <ID> Necessário para renovar, alterar ou libertar a concessão.

Pode especificar o valor de x-ms-lease-id em qualquer formato de cadeia GUID válido. Consulte o Guid Constructor (Cadeia) para obter uma lista de formatos válidos.
x-ms-lease-action: <action> acquire: pede uma nova concessão. Se a partilha de ficheiros não tiver uma concessão ativa, Ficheiros do Azure cria uma concessão na partilha de ficheiros e devolve um novo ID de concessão. Se a partilha de ficheiros tiver uma concessão ativa, só pode pedir uma nova concessão com o ID de concessão ativo. No entanto, pode especificar um novo x-ms-lease duration, incluindo um negativo (-1) para uma concessão que nunca expira.

renew: renova a concessão. Pode renovar a concessão se o ID de concessão especificado no pedido corresponder ao associado à partilha de ficheiros. Tenha em atenção que pode renovar a concessão mesmo que tenha expirado, desde que a partilha de ficheiros não tenha sido novamente arrendada desde a expiração dessa concessão. Quando renova uma concessão, o relógio de duração da concessão é reposto.

change: altere o ID de concessão de uma concessão ativa. A change tem de incluir o ID de concessão atual no x-ms-lease-ide um novo ID de concessão em x-ms-proposed-lease-id.

release: liberte a concessão. Pode libertar a concessão se o ID de concessão especificado no pedido corresponder ao associado à partilha de ficheiros. A libertação da concessão permite que outro cliente adquira imediatamente a concessão da partilha de ficheiros, assim que a versão estiver concluída.

break: quebre a concessão, se a partilha de ficheiros tiver uma concessão ativa. Depois de uma concessão ser interrompida, não pode ser renovada. Qualquer pedido autorizado pode interromper a concessão. O pedido não é necessário para especificar um ID de concessão correspondente. Quando uma concessão é interrompida, o período de interrupção da concessão é permitido breakrelease e são as únicas operações que pode realizar na partilha de ficheiros durante este período de tempo. Quando uma concessão é quebrada com êxito, a resposta indica o intervalo em segundos até que uma nova concessão possa ser adquirida.

Também pode ser lançada uma concessão que tenha sido interrompida. Um cliente pode adquirir imediatamente uma concessão de partilha de ficheiros que tenha sido lançada.
x-ms-lease-break-period: N Opcional. Para uma break operação, esta é a duração proposta pela qual a concessão deve continuar antes de ser interrompida, em segundos, entre 0 e 60. Este período de interrupção só é utilizado se for mais curto do que o tempo restante na concessão. Se for mais longo, é utilizado o tempo restante na concessão. Uma nova concessão não está disponível antes do período de interrupção expirar, mas a concessão pode ser mantida por mais tempo do que o período de interrupção. Se este cabeçalho não aparecer com uma break operação, uma concessão de duração fixa quebra após o período de concessão restante decorrido e uma concessão infinita quebra imediatamente.
x-ms-lease-duration: -1 Necessário para acquire. Especifica a duração da concessão, em segundos ou negativa (-1) para uma concessão que nunca expira. Uma concessão não infinita pode ter entre 15 e 60 segundos. Uma duração da concessão não pode ser alterada com renew ou change.
x-ms-proposed-lease-id: <ID> Opcional para acquiree necessário para change. ID de concessão proposto, num formato de cadeia GUID. Armazenamento de Blobs do Azure devolve 400 (Invalid request) se o ID de concessão proposto não estiver no formato correto. Consulte o Guid Constructor (Cadeia) para obter uma lista de formatos válidos.
Origin Opcional. Especifica a origem a partir da qual o pedido é emitido. A presença deste cabeçalho resulta em cabeçalhos de partilha de recursos entre origens (CORS) na resposta. Veja Suporte CORS para obter detalhes sobre os serviços de Armazenamento .
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe. Para obter mais informações, veja Monitorizar Ficheiros do Azure.

Corpo do pedido

Nenhum.

Pedido de exemplo

O seguinte pedido de exemplo mostra como adquirir uma concessão:

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=  

Resposta

A resposta inclui um código de estado HTTP e um conjunto de cabeçalhos de resposta.

Código de estado

Os códigos de estado de êxito devolvidos para as operações de concessão são os seguintes:

  • Acquire: uma operação bem-sucedida devolve o código de estado 201 (Criado).
  • Renew: uma operação com êxito devolve o código de estado 200 (OK).
  • Change: uma operação com êxito devolve o código de estado 200 (OK).
  • Release: uma operação com êxito devolve o código de estado 200 (OK).
  • Break: uma operação bem-sucedida devolve o código de estado 202 (Aceite).

Para obter informações sobre códigos de estado, veja Códigos de estado e de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Syntax Descrição
ETag O ETag para a partilha de ficheiros.
Last-Modified Devolve a data e hora em que a partilha de ficheiros foi modificada pela última vez. Para obter mais informações, veja Representação de valores de data/hora em cabeçalhos.

Qualquer operação que modifique a partilha de ficheiros, ou as respetivas propriedades ou metadados, atualiza a hora da última modificação. Isto inclui a definição das permissões da partilha de ficheiros. As operações em blobs não afetam a hora da última modificação da partilha de ficheiros.
x-ms-lease-id: <id> Quando pede uma concessão, Ficheiros do Azure devolve um ID de concessão exclusivo. Enquanto a concessão estiver ativa, tem de incluir o ID de concessão com qualquer pedido para eliminar a partilha de ficheiros ou para renovar, alterar ou libertar a concessão.

Uma operação de renovação bem-sucedida também devolve o ID de concessão da concessão ativa.
x-ms-lease-time: seconds Tempo aproximado restante no período de concessão, em segundos. Este cabeçalho é devolvido apenas para um pedido com êxito para interromper a concessão. Se a quebra for imediata, 0 é devolvida.
x-ms-request-id Identifica exclusivamente o pedido que foi feito e pode ser utilizado para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version Indica a versão da API FileREST utilizada para executar o pedido.
Date Um valor de data/hora UTC que indica a hora em que a resposta foi iniciada. O serviço gera este valor.
Access-Control-Allow-Origin Devolvido se o pedido incluir um Origin cabeçalho e CORS estiver ativado com uma regra correspondente. Este cabeçalho devolve o valor do cabeçalho do pedido de origem em caso de correspondência.
Access-Control-Expose-Headers Devolvido se o pedido incluir um Origin cabeçalho e CORS estiver ativado com uma regra correspondente. Devolve a lista de cabeçalhos de resposta que serão expostos ao cliente ou emissor do pedido.
Access-Control-Allow-Credentials Devolvido se o pedido incluir um Origin cabeçalho e CORS estiver ativado com uma regra correspondente que não permite todas as origens. Este cabeçalho está definido como true.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se estiver presente no pedido. O valor é, no máximo, 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, não estará presente na resposta.

Corpo da resposta

Nenhum.

Resposta de amostra

Segue-se uma resposta de exemplo para um pedido de aquisição de uma concessão:

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  

Autorização

Apenas o proprietário da conta pode chamar esta operação.

Observações

Uma concessão numa partilha de ficheiros fornece acesso exclusivo à eliminação da partilha de ficheiros. Obter operações de partilha de ficheiros terá êxito numa partilha de ficheiros alugada, sem incluir o ID de concessão. Definir operações de partilha de ficheiros exigirá o ID de concessão da partilha de ficheiros. Se o ID de concessão não estiver incluído nas operações de partilha de ficheiros definidas, a operação falhará com 412 (A pré-condição falhou). A concessão é concedida durante a duração especificada quando a concessão é adquirida, que pode ser de 15 a 60 segundos, ou uma duração infinita.

Quando um cliente adquire uma concessão, é devolvido um ID de concessão. Ficheiros do Azure gera um ID de concessão se não for especificado no pedido de aquisição. O cliente pode utilizar este ID de concessão para renovar a concessão, alterar o ID de concessão ou libertar a concessão. O diagrama seguinte mostra os cinco estados de uma concessão e os comandos ou eventos que causam alterações ao estado da concessão.

Diagrama de estados de concessão de partilha de ficheiros e acionadores de alteração de estado.

Uma concessão pode estar em qualquer um destes estados, com base no facto de a concessão estar bloqueada ou desbloqueada, e se a concessão é renovável nesse estado. As ações de concessão mostradas no diagrama anterior causam transições de estado.

Estado da renovação Concessão bloqueada Concessão desbloqueada
Concessão renovável Arrendado Fora do prazo
Concessão não renovável A quebrar Quebrada, Disponível
  • Available, a concessão está desbloqueada e pode ser adquirida. Ação permitida: acquire.
  • Leased, a concessão está bloqueada. Ações permitidas: acquire (apenas o mesmo ID de concessão), renew, change, releasee break.
  • Expired, a duração da concessão expirou. Ações permitidas: acquire, renew, releasee break.
  • Breaking, a concessão foi interrompida, mas a concessão continuará bloqueada até o período de interrupção expirar. Ações permitidas: release e break.
  • Broken, a concessão foi interrompida e o período de interrupção expirou. Ações permitidas: acquire, releasee break.

Ficheiros do Azure mantém o ID de concessão após a expiração de uma concessão de partilha de ficheiros. Um cliente pode renovar ou libertar a concessão com o respetivo ID de concessão expirado. Se o cliente tentar renovar ou libertar uma concessão expirada com o ID de concessão anterior e o pedido falhar, isso significa que a partilha de ficheiros foi novamente alugada ou eliminada desde a última concessão ativa. Se uma concessão expirar em vez de ser explicitamente lançada, um cliente poderá ter de aguardar até um minuto para que uma nova concessão possa ser adquirida para a partilha de ficheiros. No entanto, o cliente pode renovar a concessão com o ID de concessão expirado imediatamente.

A propriedade da partilha de Last-Modified-Time ficheiros não é atualizada por chamadas para Lease Share.

As tabelas seguintes mostram os resultados das ações em contentores com concessões em vários estados de concessão. As letras (A), (B) e (C) representam IDs de concessão e (X) representam um ID de concessão gerado por Ficheiros do Azure.

Resultados das tentativas de utilização em partilhas por estado de concessão

Ação Disponível Concedido (A) Interrupção (A) Quebrada (A) Expirado (A)
Eliminar com (A) Falha (412) Concedido (A), eliminação com êxito Breaking (A), delete succeeds Falha (412) Falha (412)
Eliminar com (B) Falha (412) Falha (409) Falha (412) Falha (412) Falha (412)
Eliminar, sem concessão especificada Disponível, eliminação com êxito Falha (412) Falha (412) Disponível, eliminação com êxito Disponível, eliminação com êxito
Outras operações com (A) Falha (412) Com concessão (A), a operação é bem-sucedida Breaking (A), operation succeeds (Breaking (A), operation succeeds (Breaking (A), operation succeeds Falha (412) Falha (412)
Outras operações com (B) Falha (412) Falha (409) Falha (409) Falha (412) Falha (412)
Operações, sem concessão especificada Disponível, a operação é bem-sucedida Com concessão (A), a operação é bem-sucedida Breaking (A), operation succeeds (Breaking (A), operation succeeds (Breaking (A), operation succeeds Quebrada (A), a operação é bem-sucedida Expirado (A), a operação é bem-sucedida

Resultados das operações de concessão em ações por estado de concessão

Ação Disponível Concedido (A) Interrupção (A) Quebrada (A) Expirado (A)
Acquire, nenhum ID de concessão proposto Concedido (X) Falha (409) Falha (409) Concedido (X) Concedido (X)
Acquire (A) Concedido (A) Concessão (A), nova duração Falha (409) Concedido (A) Concedido (A)
Acquire (B) Concedido (B) Falha (409) Falha (409) Concedido (B) Concedido (B)
Break, ponto final=0 Falha (409) Quebrada (A) Quebrada (A) Quebrada (A) Quebrada (A)
Break, período>0 Falha (409) Interrupção (A) Interrupção (A) Quebrada (A) Quebrada (A)
Change, (A) a (B) Falha (409) Concedido (B) Falha (409) Falha (409) Falha (409)
Change, (B) para (A) Falha (409) Concedido (A) Falha (409) Falha (409) Falha (409)
Change, (B) a (C) Falha (409) Falha (409) Falha (409) Falha (409) Falha (409)
Renew (A) Falha (409) Concessão (A), reposição do relógio de expiração Falha (409) Falha (409) Concedido (A)
Renew (B) Falha (409) Falha (409) Falha (409) Falha (409) Falha (409)
Release (A) Falha (409) Disponível Disponível Disponível Disponível
Release (B) Falha (409) Falha (409) Falha (409) Falha (409) Falha (409)
A duração expira Disponível Expirado (A) Quebrado (A) Quebrado (A) Expirado (A)