Condivisione lease

L'operazione Lease Share stabilisce e gestisce un blocco in una condivisione file di Azure o uno snapshot di condivisione. Questa API è completamente supportata, ma è un'API di gestione legacy. Usare invece condivisioni file : lease, fornito dal provider di risorse di archiviazione (Microsoft.Storage). Per altre informazioni sull'interazione a livello di codice con FileShare le risorse usando il provider di risorse di archiviazione, vedere Operazioni su FileShares.

La durata del blocco può variare da 15 a 60 secondi o può essere infinita. È possibile chiamare l'operazione Lease Share in una delle modalità seguenti:

  • Acquire: per richiedere un nuovo lease.
  • Renew: per rinnovare un lease esistente.
  • Change: per modificare l'ID di un lease esistente.
  • Release: per liberare il lease se non è più necessario, in modo che un altro client possa acquisire immediatamente un lease rispetto alla condivisione file.
  • Break: per terminare il lease, ma assicurarsi che un altro client non possa acquisire un nuovo lease fino alla scadenza del periodo di lease corrente.

Nota

L'operazione Lease Share è disponibile nella versione 2020-02-10 e successiva.

Disponibilità del protocollo

Protocollo di condivisione file abilitato Disponibile
SMB Sì
NFS Sì

Richiesta

È possibile costruire la Lease Share richiesta come indicato di seguito. È consigliato il protocollo HTTPS. Sostituire myaccount con il nome dell'account di archiviazione.

Metodo URI richiesta Versione 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

Parametri URI

È possibile specificare il parametro aggiuntivo seguente nell'URI della richiesta.

Parametro Descrizione
timeout Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostazione dei timeout per le operazioni di File di Azure.

Intestazioni della richiesta

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Intestazione della richiesta Descrizione
Authorization Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
Date o x-ms-date Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
x-ms-version Facoltativa. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.
x-ms-lease-id: <ID> Obbligatoria per rinnovare, modificare o rilasciare il lease.

È possibile specificare il valore di in qualsiasi formato di x-ms-lease-id stringa GUID valido. Per un elenco di formati validi, vedere Costruttore Guid (String).
x-ms-lease-action: <action> acquire: richiede un nuovo lease. Se la condivisione file non ha un lease attivo, File di Azure crea un lease nella condivisione file e restituisce un nuovo ID lease. Se la condivisione file ha un lease attivo, è possibile richiedere un nuovo lease usando l'ID lease attivo. È tuttavia possibile specificare un nuovo x-ms-lease duration, incluso uno negativo (-1) per un lease che non scade mai.

renew: rinnova il lease. È possibile rinnovare il lease se l'ID lease specificato nella richiesta corrisponde a quello associato alla condivisione file. Si noti che è possibile rinnovare il lease anche se è scaduto, purché la condivisione file non sia stata nuovamente terminata dopo la scadenza del lease. Quando si rinnova un lease, la durata del lease viene reimpostata.

change: modifica l'ID lease di un lease attivo. Un change deve includere l'ID lease corrente in x-ms-lease-ide un nuovo ID lease in x-ms-proposed-lease-id.

release: rilascia il lease. È possibile rilasciare il lease se l'ID lease specificato nella richiesta corrisponde a quello associato alla condivisione file. Il rilascio del lease consente a un altro client di acquisire immediatamente il lease per la condivisione file, non appena viene completata la versione.

break: interrompere il lease, se la condivisione file ha un lease attivo. Dopo che un lease viene interrotto, non può essere rinnovato. Qualsiasi richiesta autorizzata può interrompere il lease. La richiesta non è necessaria per specificare un ID lease corrispondente. Quando un lease viene interrotto, il periodo di interruzione del lease può essere trascorso e breakrelease sono le uniche operazioni che è possibile eseguire nella condivisione file durante questo periodo. Quando un lease viene interrotto correttamente, la risposta indica l'intervallo in secondi che deve trascorrere prima che possa essere acquisito un nuovo lease.

Anche un lease che è stato interrotto può essere rilasciato. Un client può acquisire immediatamente un lease di condivisione file rilasciato.
x-ms-lease-break-period: N Facoltativa. Per un'operazione break , questa è la durata proposta che il lease deve continuare prima di essere interrotto, in secondi, tra 0 e 60. Questo periodo di interruzione viene usato solo se è più breve del tempo rimanente nel lease. Se più lungo, viene utilizzato il tempo rimanente sul lease. Un nuovo lease non è disponibile prima della scadenza del periodo di interruzione, ma il lease può essere mantenuto per più tempo del periodo di interruzione. Se questa intestazione non viene visualizzata con un'operazione break , un lease a durata fissa si interrompe dopo il periodo di lease rimanente e un'interruzione infinita del lease viene interrotta immediatamente.
x-ms-lease-duration: -1 Obbligatoria per acquire. Specifica la durata del lease, in secondi, o un uno negativo (-1) per un lease che non scade mai. Un lease non infinito può essere compreso tra 15 e 60 secondi. Non è possibile modificare una durata del lease usando renew o change.
x-ms-proposed-lease-id: <ID> Facoltativo per e obbligatorio per acquirechange. ID lease proposto, in un formato di stringa GUID. Archiviazione BLOB di Azure restituisce 400 (Invalid request) se l'ID lease proposto non è nel formato corretto. Per un elenco di formati validi, vedere Costruttore Guid (String).
Origin Facoltativa. Specifica l'origine da cui proviene la richiesta. La presenza di questa intestazione determina la presenza di intestazioni di condivisione delle risorse multiorigine (CORS) nella risposta. Per informazioni dettagliate, vedere SUPPORTO CORS per i servizi di archiviazione .
x-ms-client-request-id Facoltativa. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le richieste ricevute dal server. Per altre informazioni, vedere Monitorare File di Azure.

Testo della richiesta

Nessuno.

Richiesta di esempio

Nella richiesta di esempio seguente mostra come acquisire un lease:

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=  

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codice stato

I codici di stato per le operazioni completate correttamente restituiti per le operazioni di lease sono i seguenti:

  • Acquire: un'operazione completata correttamente restituisce il codice di stato 201 (Creato).
  • Renew: un'operazione completata correttamente restituisce il codice di stato 200 (OK).
  • Change: un'operazione completata correttamente restituisce il codice di stato 200 (OK).
  • Release: un'operazione completata correttamente restituisce il codice di stato 200 (OK).
  • Break: un'operazione completata correttamente restituisce il codice di stato 202 (Accettato).

Per informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

Sintassi Descrizione
ETag Oggetto ETag per la condivisione file.
Last-Modified Restituisce la data e l'ora dell'ultima modifica della condivisione file. Per altre informazioni, vedere Rappresentazione dei valori di data e ora nelle intestazioni.

Qualsiasi operazione che modifica la condivisione file o le relative proprietà o metadati aggiorna l'ora dell'ultima modifica. Ciò include l'impostazione delle autorizzazioni della condivisione file. Le operazioni sui BLOB non influiscono sull'ora dell'ultima modifica della condivisione file.
x-ms-lease-id: <id> Quando si richiede un lease, File di Azure restituisce un ID lease univoco. Mentre il lease è attivo, è necessario includere l'ID lease con qualsiasi richiesta di eliminazione della condivisione file o per rinnovare, modificare o rilasciare il lease.

Un'operazione di rinnovo completata correttamente restituisce anche l'ID del lease attivo.
x-ms-lease-time: seconds Tempo approssimativo rimanente nel periodo di lease, in secondi. Questa intestazione viene restituita solo per una richiesta di interruzione del lease completata correttamente. Se l'interruzione è immediata, 0 viene restituita.
x-ms-request-id Identifica in modo univoco la richiesta effettuata e può essere usata per la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risoluzione dei problemi relativi alle operazioni api.
x-ms-version Indica la versione dell'API FileREST usata per eseguire la richiesta.
Date Valore di data/ora UTC che indica l'ora in cui è stata avviata la risposta. Il servizio genera questo valore.
Access-Control-Allow-Origin Restituito se la richiesta include un'intestazione Origin e CORS è abilitato con una regola corrispondente. Questa intestazione restituisce il valore dell'intestazione della richiesta di origine nel caso di una corrispondenza.
Access-Control-Expose-Headers Restituito se la richiesta include un'intestazione Origin e CORS è abilitato con una regola corrispondente. Restituisce l'elenco delle intestazioni di risposta che devono essere esposte al client o all'emittente della richiesta.
Access-Control-Allow-Credentials Restituito se la richiesta include un'intestazione Origin e CORS è abilitato con una regola corrispondente che non consente tutte le origini. Questa intestazione è impostata su true.
x-ms-client-request-id Può essere usato per risolvere i problemi relativi alle richieste e alle risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id , se presente nella richiesta. Il valore è al massimo 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non sarà presente nella risposta.

Corpo della risposta

Nessuno.

Risposta di esempio

Di seguito è riportata una risposta di esempio per una richiesta di acquisizione di un lease:

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  

Autorizzazione

Solo il proprietario dell'account può chiamare questa operazione.

Commenti

Un lease in una condivisione file consente l'accesso esclusivo all'eliminazione alla condivisione file. Le operazioni di recupero della condivisione file avranno esito positivo in una condivisione file con lease, senza includere l'ID lease. L'impostazione delle operazioni di condivisione file richiederà l'ID lease della condivisione file. Se l'ID lease non è incluso nelle operazioni di condivisione file impostate, l'operazione ha esito negativo con 412 (precondizione non riuscita). Il lease viene concesso per la durata specificata quando viene acquisito il lease, che può essere compreso tra 15 e 60 secondi o una durata infinita.

Quando un client acquisisce un lease, viene restituito un ID lease. File di Azure genera un ID lease se non ne viene specificato uno nella richiesta di acquisizione. Il client può usare questo ID lease per rinnovare il lease, modificarne l'ID lease o rilasciare il lease. Nel diagramma seguente vengono illustrati i cinque stati di un lease e i comandi o gli eventi che causano la modifica dello stato del lease.

Diagramma degli stati di lease della condivisione file e dei trigger di modifica dello stato.

Un lease può trovarsi in uno di questi stati, a seconda che il lease sia bloccato o sbloccato e se il lease sia rinnovabile in tale stato. Le azioni di lease illustrate nel diagramma precedente causano transizioni di stato.

Stato rinnovo Lease bloccato Lease sbloccato
Lease rinnovabile Con lease Scaduto
Lease non rinnovabile Interruzione Interrotto, disponibile
  • Available, il lease è sbloccato e può essere acquisito. Azione consentita: acquire.
  • Leased, il lease è bloccato. Azioni consentite: acquire (solo stesso ID lease), renew, change, release e break.
  • Expired, la durata del lease è scaduta. Operazioni consentite: acquire, renew, release e break.
  • Breaking, il lease è stato interrotto, ma il lease continuerà a essere bloccato fino alla scadenza del periodo di interruzione. Operazioni consentite: release e break.
  • Broken, il lease è stato interrotto e il periodo di interruzione è scaduto. Azioni consentite: acquire, release e break.

File di Azure mantiene l'ID lease dopo la scadenza di un lease di condivisione file. Un client può rinnovare o rilasciare il lease usando l'ID lease scaduto. Se il client tenta di rinnovare o rilasciare un lease scaduto con l'ID lease precedente e la richiesta ha esito negativo, significa che la condivisione file è stata nuovamente con lease o eliminata dopo l'ultima attività del lease. Se un lease scade anziché essere rilasciato in modo esplicito, un client potrebbe dover attendere fino a un minuto prima di poter acquisire un nuovo lease per la condivisione file. Il client, tuttavia, può rinnovare il lease immediatamente con l'ID lease scaduto.

La proprietà della Last-Modified-Time condivisione file non viene aggiornata dalle chiamate a Lease Share.

Nelle tabelle seguenti vengono mostrati i risultati delle azioni sui contenitori con lease in vari stati. Le lettere (A), (B) e (C) rappresentano gli ID lease e (X) rappresenta un ID lease generato da File di Azure.

Risultati dei tentativi di utilizzo nelle condivisioni per stato di lease

Azione Disponibile Con lease (A) Interruzione in corso (A) Interrotto (A) Scaduto (A)
Elimina con (A) Esito negativo (412) Con lease (A), l'eliminazione ha esito positivo Interruzione in corso (A), l'eliminazione ha esito positivo Esito negativo (412) Esito negativo (412)
Elimina con (B) Esito negativo (412) Errore (409) Esito negativo (412) Esito negativo (412) Esito negativo (412)
Eliminazione, nessun lease specificato Disponibile, l'eliminazione ha esito positivo Esito negativo (412) Esito negativo (412) Disponibile, l'eliminazione ha esito positivo Disponibile, l'eliminazione ha esito positivo
Altre operazioni con (A) Esito negativo (412) Con lease (A), l'operazione ha esito positivo Interruzione in corso (A), l'operazione ha esito positivo Esito negativo (412) Esito negativo (412)
Altre operazioni con (B) Esito negativo (412) Errore (409) Errore (409) Esito negativo (412) Esito negativo (412)
Operazioni, nessun lease specificato Disponibile, l'operazione ha esito positivo Con lease (A), l'operazione ha esito positivo Interruzione in corso (A), l'operazione ha esito positivo Interrotto (A), l'operazione ha esito positivo Scaduto (A), l'operazione ha esito positivo

Risultati delle operazioni di lease sulle condivisioni per stato di lease

Azione Disponibile Con lease (A) Interruzione in corso (A) Interrotto (A) Scaduto (A)
Acquire, nessun ID lease proposto Con lease (X) Errore (409) Errore (409) Con lease (X) Con lease (X)
Acquire (A) Con lease (A) Con lease (A), nuova durata Errore (409) Con lease (A) Con lease (A)
Acquire (B) Con lease (B) Errore (409) Errore (409) Con lease (B) Con lease (B)
Break, periodo=0 Errore (409) Interrotto (A) Interrotto (A) Interrotto (A) Interrotto (A)
Break, periodo>0 Errore (409) Interruzione in corso (A) Interruzione in corso (A) Interrotto (A) Interrotto (A)
Change, (A) - (B) Errore (409) Con lease (B) Errore (409) Errore (409) Errore (409)
Change, (B) - (A) Errore (409) Con lease (A) Errore (409) Errore (409) Errore (409)
Change, (B) - (C) Errore (409) Errore (409) Errore (409) Errore (409) Errore (409)
Renew (A) Errore (409) Con lease (A), reimpostazione della scadenza Errore (409) Errore (409) Con lease (A)
Renew (B) Errore (409) Errore (409) Errore (409) Esito negativo (409) Esito negativo (409)
Release (A) Esito negativo (409) Disponibile Disponibile Disponibile Disponibile
Release (B) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409) Esito negativo (409)
La durata scade Disponibile Scaduto (A) Interrotto (A) Interrotto (A) Scaduto (A)