Plik dzierżawy
Operacja Lease File
tworzy blokadę w pliku i zarządza nią na potrzeby operacji zapisu i usuwania.
Lease File
program jest obsługiwany w wersji 2019-02-02 lub nowszej.
Operację Lease File
można wywołać w jednym z następujących trybów:
-
Acquire
, aby zażądać nowej dzierżawy. -
Change
, aby zmienić identyfikator istniejącej dzierżawy. -
Release
, aby zwolnić dzierżawę, jeśli nie jest już potrzebna, aby inny klient mógł natychmiast uzyskać dzierżawę względem pliku. -
Break
, aby przymusowo zakończyć dzierżawę, ale upewnij się, że inny klient nie może uzyskać nowej dzierżawy do czasu wygaśnięcia bieżącego okresu dzierżawy.
Dostępność protokołu
Włączony protokół udziału plików | Dostępne |
---|---|
SMB | |
NFS |
Żądanie
Żądanie można skonstruować Lease File
w następujący sposób. Zalecane jest użycie protokołu HTTPS.
Metoda | Identyfikator URI żądania | Wersja PROTOKOŁU HTTP |
---|---|---|
Put |
https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease |
HTTP/1.1 |
Zastąp składniki ścieżki wyświetlane we własnym identyfikatorze URI żądania, w następujący sposób:
Składnik ścieżki | Opis |
---|---|
myaccount |
Nazwa konta magazynu. |
myshare |
Nazwa udziału plików. |
mydirectorypath |
Opcjonalny. Ścieżka do katalogu. |
myfile |
Nazwa pliku. |
Parametry identyfikatora URI
W identyfikatorze URI żądania można określić następujący dodatkowy parametr.
Parametr | Opis |
---|---|
timeout |
Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji Azure Files. |
Nagłówki żądań
W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań.
Nagłówek żądania | Opis |
---|---|
Authorization |
Wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
Date lub x-ms-date |
Wymagane. Określa dla żądania godzinę w formacie uniwersalnego czasu koordynowanego (UTC). Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
x-ms-version |
Opcjonalny. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage. |
x-ms-lease-id: <ID> |
Wymagane do odnowienia, zmiany lub zwolnienia dzierżawy. Wartość można określić x-ms-lease-id w dowolnym prawidłowym formacie ciągu IDENTYFIKATORa GUID. Aby uzyskać listę prawidłowych formatów, zobacz Konstruktor guid (ciąg). |
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> |
acquire : żąda nowej dzierżawy. Jeśli plik nie ma aktywnej dzierżawy, Azure Files utworzy dzierżawę pliku i zwróci nowy identyfikator dzierżawy. Jeśli plik ma aktywną dzierżawę, możesz zażądać tylko nowej dzierżawy przy użyciu aktywnego identyfikatora dzierżawy.change : zmienia identyfikator dzierżawy aktywnej dzierżawy. Element change musi zawierać bieżący identyfikator dzierżawy w x-ms-lease-id elemencie i nowy identyfikator dzierżawy w pliku x-ms-proposed-lease-id .release : zwalnia dzierżawę. Dzierżawę można zwolnić, jeśli identyfikator dzierżawy określony na żądaniu jest zgodny z plikiem skojarzonym z plikiem. Zwolnienie dzierżawy umożliwia innemu klientowi natychmiastowe uzyskanie dzierżawy dla pliku, gdy tylko wydanie zostanie ukończone.break : przerywa dzierżawę, jeśli plik ma aktywną dzierżawę. Każde autoryzowane żądanie może przerwać dzierżawę. Żądanie nie jest wymagane do określenia zgodnego identyfikatora dzierżawy. Nieskończona dzierżawa jest natychmiast przerwana. |
x-ms-lease-duration: -1 |
Dozwolone i wymagane tylko w acquire przypadku operacji. Wymagane jest , -1 aby wskazać dzierżawę, która nigdy nie wygasa. |
x-ms-proposed-lease-id: <ID> |
Opcjonalne dla acquire elementu , i wymagane dla change elementu . Proponowany identyfikator dzierżawy w formacie ciągu GUID. Azure Files zwraca wartość400 (Invalid request) , jeśli proponowany identyfikator dzierżawy nie jest w poprawnym formacie. Aby uzyskać listę prawidłowych formatów, zobacz Konstruktor guid (ciąg). |
x-ms-client-request-id |
Opcjonalny. Udostępnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB), który jest rejestrowany w dziennikach podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie Azure Files. |
x-ms-file-request-intent |
Wymagane, jeśli Authorization nagłówek określa token OAuth. Akceptowalna wartość to backup . Ten nagłówek określa, że wartość Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action lub Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action powinna zostać udzielona, jeśli zostaną one uwzględnione w zasadach RBAC przypisanych do tożsamości, która jest autoryzowana przy użyciu nagłówka Authorization . Dostępne dla wersji 2022-11-02 lub nowszej. |
x-ms-allow-trailing-dot: { <Boolean> } |
Opcjonalny. Wersja 2022-11-02 lub nowsza. Wartość logiczna określa, czy końcowa kropka obecna w adresie URL żądania powinna być przycinana, czy nie. Aby uzyskać więcej informacji, zobacz Nazewnictwo i odwoływanie się do udziałów, katalogów, plików i metadanych. |
Treść żądania
Brak.
Przykładowe żądanie
Następujące przykładowe żądanie pokazuje, jak uzyskać dzierżawę:
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=
Reakcja
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kod stanu
Kody stanu powodzenia zwrócone dla operacji dzierżawy są następujące:
-
Acquire
: Operacja zakończona powodzeniem zwraca kod stanu 201 (utworzono). -
Change
: Operacja zakończona powodzeniem zwraca kod stanu 200 (OK). -
Release
: Operacja zakończona powodzeniem zwraca kod stanu 200 (OK). -
Break
: Operacja zakończona powodzeniem zwraca kod stanu 202 (Zaakceptowano).
Aby uzyskać informacje o kodach stanu, zobacz Stan i kody błędów.
Nagłówki odpowiedzi
Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe, standardowe nagłówki HTTP. Wszystkie nagłówki standardowe są zgodne ze specyfikacją protokołu HTTP/1.1.
Składnia | Opis |
---|---|
ETag |
Zawiera wartość, której można użyć do warunkowego wykonywania operacji w cudzysłowie. Operacja Lease File nie modyfikuje tej właściwości. |
Last-Modified |
Data/godzina ostatniej modyfikacji pliku. Aby uzyskać więcej informacji, zobacz Reprezentacja wartości daty i godziny w nagłówkach. Każda operacja zapisu w pliku, w tym aktualizacje metadanych lub właściwości pliku, zmienia czas ostatniej modyfikacji pliku. Operacja Lease File nie modyfikuje tej właściwości. |
x-ms-lease-id: <id> |
W przypadku żądania dzierżawy Azure Files zwraca unikatowy identyfikator dzierżawy. Podczas gdy dzierżawa jest aktywna, należy dołączyć identyfikator dzierżawy z dowolnym żądaniem do zapisu w pliku lub zmienić lub zwolnić dzierżawę. Pomyślna operacja odnawiania zwraca również identyfikator dzierżawy dla aktywnej dzierżawy. |
x-ms-lease-time: seconds |
Zwrócone tylko dla pomyślnego żądania przerwania dzierżawy.
0 jest zwracany w przypadku natychmiastowych przerw. |
x-ms-request-id |
Jednoznacznie identyfikuje wykonane żądanie i może służyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API. |
x-ms-version |
Wskazuje wersję Azure Files użytą do uruchomienia żądania. |
Date |
Wartość daty/godziny UTC wskazująca godzinę, w której zainicjowano odpowiedź. Usługa generuje tę wartość. |
x-ms-client-request-id |
Może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości x-ms-client-request-id nagłówka, jeśli jest obecna w żądaniu. Wartość wynosi co najwyżej 1024 widoczne znaki ASCII.
x-ms-client-request-id Jeśli nagłówek nie jest obecny w żądaniu, nie będzie on obecny w odpowiedzi. |
Treść odpowiedzi
Brak.
Przykładowa odpowiedź
Poniżej przedstawiono przykładową odpowiedź na żądanie uzyskania dzierżawy:
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>
Autoryzacja
Właściciel konta może wywołać tę operację. Ponadto każdy klient z sygnaturą dostępu współdzielonego, który ma uprawnienia do zapisu w tym pliku lub jego udziale, może to zrobić.
Uwagi
Dzierżawa pliku zapewnia wyłączny dostęp do zapisu i usuwania pliku. Aby zapisać w pliku z aktywną dzierżawą, klient musi dołączyć aktywny identyfikator dzierżawy z żądaniem zapisu. Dzierżawa jest przyznawana przez nieskończony czas trwania.
Gdy klient uzyskuje dzierżawę, zwracany jest identyfikator dzierżawy. Azure Files generuje identyfikator dzierżawy, jeśli nie został określony w żądaniu pozyskiwania. Klient może użyć tego identyfikatora dzierżawy, aby zmienić jego identyfikator dzierżawy lub zwolnić dzierżawę.
Gdy dzierżawa jest aktywna, identyfikator dzierżawy musi być uwzględniony w żądaniu dla dowolnej z następujących operacji:
- Tworzenie pliku
- Ustawianie metadanych pliku
- Ustawianie właściwości pliku
- Usuwanie pliku
- Umieść zakres
- Skopiuj plik (identyfikator dzierżawy wymagany do pliku docelowego).
Jeśli identyfikator dzierżawy nie jest uwzględniony, te operacje kończą się niepowodzeniem w pliku dzierżawionych z wartością 412 – Precondition failed
.
Następujące operacje kończą się powodzeniem w pliku dzierżawionym bez uwzględniania identyfikatora dzierżawy:
- Pobieranie pliku
- Pobieranie metadanych pliku
- Pobieranie właściwości pliku
- Zakresy listy
- Katalogi listy i pliki
- Skopiuj plik (brak identyfikatora dzierżawy potrzebnego do pliku źródłowego).
-
Plik dzierżawy (interfejs API REST) ( identyfikator dzierżawy nie jest wymagany dla
x-ms-lease-action: break
elementu .)
Nie trzeba uwzględniać identyfikatora dzierżawy dla GET
operacji w pliku, który ma aktywną dzierżawę. Jednak wszystkie GET
operacje obsługują parametr dzierżawy warunkowej. W tym typie parametru operacja jest wykonywana tylko wtedy, gdy identyfikator dzierżawy dołączony do żądania jest prawidłowy.
Wszystkie operacje udziału są dozwolone w udziale zawierającym pliki z aktywną dzierżawą, w tym Usuń udział. W związku z tym można usunąć udział, nawet jeśli pliki w nim mają aktywne dzierżawy.
Stany dzierżawy
Na poniższym diagramie przedstawiono trzy stany dzierżawy oraz polecenia lub zdarzenia powodujące zmiany stanu dzierżawy.
Dzierżawa może znajdować się w trzech stanach, na podstawie tego, czy dzierżawa jest zablokowana, czy odblokowana, i czy dzierżawa jest odnawialna w tym stanie. Akcje dzierżawy pokazane na poprzednim diagramie powodują przejścia stanu.
-
Available
: Dzierżawa jest odblokowana i może zostać uzyskana. Dozwolona akcja:acquire
. -
Leased
: Dzierżawa jest zablokowana. Dozwolone akcje:acquire
(tylko ten sam identyfikator dzierżawy),change
,release
ibreak
. -
Broken
: Dzierżawa została przerwana. Dozwolone akcje:acquire
,release
ibreak
.
Należy pamiętać, że dzierżawa nie może zostać udzielona dla pliku w migawki udziału, ponieważ migawki są tylko do odczytu. Żądanie dzierżawy względem pliku w migawki udziału powoduje wyświetlenie kodu stanu 400 (nieprawidłowe żądanie).
Jeśli dzierżawa pliku jest w stanie Przerwana , a operacja Put Range zapisuje w pliku, stan dzierżawy zmieni się na Dostępny. Jeśli jednak plik ma ustawiony atrybut tylko do odczytu, serwer zwróci konflikt 409.
Właściwość pliku Last-Modified-Time
nie jest aktualizowana przez wywołania do Lease File
.
W poniższych tabelach przedstawiono wyniki akcji dotyczących plików z dzierżawami w różnych stanach dzierżawy. Litery (A), (B) i (C) reprezentują identyfikatory dzierżawy, a (X) reprezentuje identyfikator dzierżawy wygenerowany przez Azure Files.
Wyniki prób użycia plików według stanu dzierżawy
Akcja | Dostępne | Dzierżawione (A) | Przerwane (A) |
---|---|---|---|
Pisanie przy użyciu (A) | Niepowodzenie (412) | Wydzierżawione (A), zapis kończy się powodzeniem | Niepowodzenie (412) |
Pisanie przy użyciu (B) | Niepowodzenie (412) | Niepowodzenie (409) | Niepowodzenie (412) |
Zapis, brak określonej dzierżawy | Dostępne, zapis kończy się powodzeniem | Niepowodzenie (412) | Dostępne, zapis kończy się powodzeniem |
Odczyt przy użyciu (A) | Niepowodzenie (412) | Dzierżawione (A), odczyt kończy się powodzeniem | Niepowodzenie (412) |
Odczyt przy użyciu (B) | Niepowodzenie (412) | Niepowodzenie (409) | Niepowodzenie (412) |
Odczyt, brak określonej dzierżawy | Dostępne, odczyt kończy się powodzeniem | Dzierżawione (A), odczyt kończy się powodzeniem | Przerwane (A), odczyt kończy się powodzeniem |
Wyniki operacji dzierżawy dla plików według stanu dzierżawy
Akcja | Dostępne | Dzierżawione (A) | Przerwane (A) |
---|---|---|---|
Acquire , brak proponowanego identyfikatora dzierżawy |
Dzierżawione (X) | Niepowodzenie (409) | Dzierżawione (X) |
Acquire (A) |
Dzierżawione (A) | Dzierżawione (A) | Dzierżawione (A) |
Acquire (B) |
Dzierżawione (B) | Niepowodzenie (409) | Dzierżawione (B) |
Break |
Niepowodzenie (409) | Przerwane (A) | Przerwane (A) |
Change , (A) do (B) |
Niepowodzenie (409) | Dzierżawione (B) | Niepowodzenie (409) |
Change , (B) do (A) |
Niepowodzenie (409) | Dzierżawione (A) | Niepowodzenie (409) |
Change , (B) do (C) |
Niepowodzenie (409) | Niepowodzenie (409) | Niepowodzenie (409) |
Release (A) |
Niepowodzenie (409) | Dostępne | Dostępne |
Release (B) |
Niepowodzenie (409) | Niepowodzenie (409) | Niepowodzenie (409) |