Wykonywanie migawki obiektu blob

Operacja Snapshot Blob tworzy migawkę obiektu blob tylko do odczytu.

Żądanie

Żądanie można skonstruować Snapshot Blob w następujący sposób. Zalecane jest użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu:

IDENTYFIKATOR URI żądania PUT Wersja PROTOKOŁU HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

Identyfikator URI usługi magazynu emulowanego

Po wysłaniu żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i Azure Blob Storage port jako 127.0.0.1:10000, a następnie nazwę emulowanego konta:

IDENTYFIKATOR URI żądania PUT Wersja PROTOKOŁU HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot HTTP/1.1

Aby uzyskać więcej informacji, zobacz Use the Azurite emulator for local Azure Storage development (Używanie emulatora Azurite do lokalnego programowania w usłudze Azure Storage).

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 usługi Blob Storage.

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 Wymagane dla wszystkich autoryzowanych żądań. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage.
x-ms-meta-name:value Opcjonalny. Określa zdefiniowaną przez użytkownika parę name-value skojarzona z obiektem blob. Jeśli nie określisz żadnych par nazwa-wartość, operacja kopiuje podstawowe metadane obiektu blob do migawki. Jeśli określisz jedną lub więcej par name-value, migawka zostanie utworzona przy użyciu określonych metadanych, a metadane nie zostaną skopiowane z podstawowego obiektu blob.

Należy pamiętać, że począwszy od wersji 2009-09-19 nazwy metadanych muszą być zgodne z regułami nazewnictwa identyfikatorów języka C#. Aby uzyskać więcej informacji , zobacz Nazewnictwo i odwoływanie się do kontenerów, obiektów blob i metadanych .
If-Modified-Since Opcjonalny. Wartość DateTime . Określ ten nagłówek warunkowy, aby utworzyć migawkę obiektu blob, tylko wtedy, gdy został zmodyfikowany od określonej daty/godziny. Jeśli podstawowy obiekt blob nie został zmodyfikowany, usługa Blob Storage zwraca kod stanu 412 (Warunek wstępny nie powiodło się).
If-Unmodified-Since Opcjonalny. Wartość DateTime . Określ ten nagłówek warunkowy, aby utworzyć migawkę obiektu blob, tylko wtedy, gdy nie został zmodyfikowany od określonej daty/godziny. Jeśli obiekt blob podstawowy został zmodyfikowany, usługa Blob Storage zwraca kod stanu 412 (Warunek wstępny nie powiodło się).
If-Match Opcjonalny. Wartość ETag . ETag Określ wartość dla tego nagłówka warunkowego, aby utworzyć migawkę obiektu blob, tylko wtedy, gdy jego ETag wartość jest zgodna z określoną wartością. Jeśli wartości nie są zgodne, usługa Blob Storage zwraca kod stanu 412 (Warunek wstępny nie powiodło się).
If-None-Match Opcjonalny. Wartość ETag .

ETag Określ wartość dla tego nagłówka warunkowego, aby utworzyć migawkę obiektu blob, tylko wtedy, gdy jego ETag wartość nie jest zgodna z określoną wartością. Jeśli wartości są identyczne, usługa Blob Storage zwraca kod stanu 412 (Warunek wstępny nie powiodło się).
x-ms-encryption-scope Opcjonalny. Wskazuje zakres szyfrowania używany do szyfrowania zawartości żądania. Ten nagłówek jest obsługiwany w wersji 2019-02-02 i nowszej.
x-ms-lease-id:<ID> Opcjonalny. Jeśli określisz ten nagłówek, operacja jest wykonywana tylko wtedy, gdy zostaną spełnione oba następujące warunki:

— Dzierżawa obiektu blob jest obecnie aktywna.
— Identyfikator dzierżawy określony w żądaniu jest zgodny z identyfikatorem obiektu blob.

Jeśli ten nagłówek zostanie określony, a któryś z tych warunków nie zostanie spełniony, żądanie zakończy się niepowodzeniem. Operacja Snapshot Blob kończy się niepowodzeniem z kodem stanu 412 (Niepowodzenie warunku wstępnego).
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 Blob Storage.

Ta operacja obsługuje również używanie nagłówków warunkowych do uruchomienia operacji tylko wtedy, gdy zostanie spełniony określony warunek. Aby uzyskać więcej informacji, zobacz Określanie nagłówków warunkowych dla operacji usługi Blob Storage.

Nagłówki żądań (klucze szyfrowania dostarczone przez klienta)

Począwszy od wersji 2019-02-02, można określić następujące nagłówki na żądanie szyfrowania obiektu blob przy użyciu klucza dostarczonego przez klienta. Szyfrowanie przy użyciu klucza dostarczonego przez klienta (i odpowiedniego zestawu nagłówków) jest opcjonalne. Jeśli obiekt blob został wcześniej zaszyfrowany przy użyciu klucza dostarczonego przez klienta, te nagłówki muszą zostać uwzględnione w żądaniu, aby pomyślnie ukończyć operację odczytu.

Nagłówek żądania Opis
x-ms-encryption-key Wymagane. Klucz szyfrowania AES-256 zakodowany w formacie Base64.
x-ms-encryption-key-sha256 Wymagane. Skrót SHA256 zakodowany w formacie Base64 klucza szyfrowania.
x-ms-encryption-algorithm: AES256 Wymagane. Określa algorytm do użycia do szyfrowania. Wartość tego nagłówka musi mieć wartość AES256.

Treść żądania

Brak.

Reakcja

Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.

Kod stanu

Operacja zakończona powodzeniem zwraca kod stanu 201 (utworzono). 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
x-ms-snapshot: <DateTime> DateTime Zwraca wartość, która jednoznacznie identyfikuje migawkę. Wartość tego nagłówka wskazuje wersję migawki i można jej użyć w kolejnych żądaniach dostępu do migawki. Należy pamiętać, że ta wartość jest nieprzezroczysta.
ETag Migawka ETag . Jeśli wersja żądania to 2011-08-18 lub nowsza, ETag wartość będzie w cudzysłowie. Należy pamiętać, że nie można zapisać migawki, więc ETag określona migawka nigdy nie zmienia się. Jednak migawka różni się od obiektu blob podstawowego, ETag jeśli nowe metadane są dostarczane z żądaniem Snaphot Blob . Jeśli w żądaniu nie określono żadnych metadanych, ETag migawka będzie taka sama jak w przypadku podstawowego obiektu blob, w momencie wykonania migawki.
Last-Modified Czas ostatniej modyfikacji migawki. Aby uzyskać więcej informacji, zobacz Reprezentacja wartości daty i godziny w nagłówkach.

Należy pamiętać, że nie można zapisać migawki, więc czas ostatniej modyfikacji określonej migawki nigdy się nie zmienia. Jednak czas ostatniej modyfikacji migawki będzie się różnić od podstawowego obiektu blob, jeśli nowe metadane są dostarczane z żądaniem Snaphot Blob . Jeśli w żądaniu nie określono żadnych metadanych, czas ostatniej modyfikacji migawki będzie identyczny z obiektem blob podstawowym, w momencie wykonania migawki.
x-ms-request-id Jednoznacznie identyfikuje żądanie, które zostało wykonane i może być używane 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ę usługi Blob Storage, która została użyta do uruchomienia żądania. Ten nagłówek jest zwracany dla żądań wysyłanych w wersji 2009-09-19 lub nowszej.
Date Wartość daty/godziny UTC wskazująca godzinę, w której zainicjowano odpowiedź. Usługa generuje tę wartość.
x-ms-request-server-encrypted: true/false Wersja 2019-02-02 lub nowsza. Wartość tego nagłówka jest ustawiona na truewartość , jeśli zawartość żądania zostanie pomyślnie zaszyfrowana przy użyciu określonego algorytmu. W przeciwnym razie wartość jest ustawiona na false.
x-ms-encryption-key-sha256 Wersja 2019-02-02 lub nowsza. Zwrócone, jeśli żądanie użyło klucza dostarczonego przez klienta do szyfrowania. Klient może upewnić się, że zawartość żądania została pomyślnie zaszyfrowana przy użyciu podanego klucza.
x-ms-encryption-scope Wersja 2019-02-02 lub nowsza. Zwrócone, jeśli żądanie użyło zakresu szyfrowania. Klient może upewnić się, że zawartość żądania została pomyślnie zaszyfrowana przy użyciu zakresu szyfrowania.
x-ms-version-id: <DateTime> Wersja 2019-12-12 lub nowsza. Zwraca nieprzezroczystą DateTime wartość, która jednoznacznie identyfikuje obiekt blob. Wartość tego nagłówka wskazuje wersję obiektu blob i można jej użyć w kolejnych żądaniach w celu uzyskania dostępu do obiektu blob.
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.

Autoryzacja

Autoryzacja jest wymagana podczas wywoływania dowolnej operacji dostępu do danych w usłudze Azure Storage. Możesz autoryzować operację zgodnie z Snapshot Blob poniższym opisem.

Usługa Azure Storage obsługuje używanie Tożsamość Microsoft Entra do autoryzacji żądań do danych obiektów blob. Za pomocą Tożsamość Microsoft Entra możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Azure, aby udzielić uprawnień podmiotowi zabezpieczeń. Podmiot zabezpieczeń może być użytkownikiem, grupą, jednostką usługi aplikacji lub tożsamością zarządzaną platformy Azure. Podmiot zabezpieczeń jest uwierzytelniany przez Tożsamość Microsoft Entra w celu zwrócenia tokenu OAuth 2.0. Token może następnie służyć do autoryzowania żądania względem usługi Blob Service.

Aby dowiedzieć się więcej na temat autoryzacji przy użyciu Tożsamość Microsoft Entra, zobacz Autoryzowanie dostępu do obiektów blob przy użyciu Tożsamość Microsoft Entra.

Uprawnienia

Poniżej wymieniono akcję RBAC niezbędną do wywołania Snapshot Blob operacji przez użytkownika, grupę lub jednostkę usługi Microsoft Entra oraz najmniej uprzywilejowaną wbudowaną rolę RBAC platformy Azure, która obejmuje tę akcję:

Aby dowiedzieć się więcej na temat przypisywania ról przy użyciu kontroli dostępu opartej na rolach platformy Azure, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob.

Uwagi

Migawki udostępniają wersje obiektów blob tylko do odczytu. Po utworzeniu migawki możesz ją odczytać, skopiować lub usunąć, ale nie można jej zmodyfikować.

Migawka zapewnia wygodny sposób tworzenia kopii zapasowych danych obiektów blob. Za pomocą migawki można przywrócić obiekt blob do wcześniejszej wersji, wywołując polecenie Copy Blob, aby zastąpić podstawowy obiekt blob jego migawką.

Podczas tworzenia migawki usługa Blob Storage zwraca DateTime wartość, która jednoznacznie identyfikuje migawkę względem jego podstawowego obiektu blob. Tej wartości można użyć do wykonywania dalszych operacji na migawki. Pamiętaj, że należy traktować tę DateTime wartość jako nieprzezroczystą.

Wartość DateTime identyfikuje migawkę w identyfikatorze URI. Na przykład podstawowy obiekt blob i jego migawki mają identyfikatory URI podobne do następujących:

  • Podstawowy obiekt blob: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • Migawka: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Należy pamiętać, że za każdym razem, gdy wywołujesz Snapshot Blob operację, tworzysz nową migawkę z unikatową DateTime wartością. Obiekt blob może obsługiwać dowolną liczbę migawek. Istniejące migawki nigdy nie są zastępowane. Można je usunąć jawnie, wywołując polecenie Usuń obiekt blob i ustawiając x-ms-include-snapshots nagłówek na odpowiednią wartość.

Pomyślne wywołanie zwraca Snapshot BlobDateTime wartość w nagłówku x-ms-snapshot odpowiedzi. Następnie możesz użyć tej DateTime wartości do wykonywania operacji odczytu, usuwania lub kopiowania w określonej wersji migawki. Możesz wywołać dowolną operację usługi Blob Storage, która jest prawidłowa dla migawki, określając ?snapshot=<DateTime> po nazwie obiektu blob.

Podczas tworzenia migawki obiektu blob do migawki są kopiowane następujące właściwości systemu z tymi samymi wartościami:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (tylko dla stronicowych obiektów blob)

  • x-ms-blob-committed-block-count (tylko w przypadku uzupełnialnych obiektów blob)

  • x-ms-copy-id (wersja 2012-02-12 lub nowsza)

  • x-ms-copy-status (wersja 2012-02-12 lub nowsza)

  • x-ms-copy-source (wersja 2012-02-12 lub nowsza)

  • x-ms-copy-progress (wersja 2012-02-12 lub nowsza)

  • x-ms-copy-completion-time (wersja 2012-02-12 lub nowsza)

  • x-ms-copy-status-description (wersja 2012-02-12 lub nowsza)

Zatwierdzona lista bloków obiektu blob podstawowego jest również kopiowana do migawki, jeśli obiekt blob jest blokowym obiektem blob. Żadne niezatwierdzone bloki nie są kopiowane.

Obiekt blob migawki jest zawsze taki sam jak podstawowy obiekt blob w czasie wykonywania migawki. Wartość Content-Length nagłówka dla obiektu blob migawki będzie taka sama jak dla podstawowego obiektu blob.

Możesz określić co najmniej jedną nową wartość metadanych migawki, określając x-ms-meta-name:value nagłówek żądania. Jeśli ten nagłówek nie zostanie określony, metadane skojarzone z podstawowym obiektem blob zostaną skopiowane do migawki.

Wszystkie tagi skojarzone z podstawowym obiektem blob są kopiowane do migawki. Nie można ustawić nowych wartości tagów dla migawki.

Możesz określić nagłówki warunkowe w żądaniu, aby utworzyć migawkę obiektu blob tylko wtedy, gdy warunek zostanie spełniony. Jeśli określony warunek nie zostanie spełniony, migawka nie zostanie utworzona. Usługa zwraca kod stanu 412 (Niepowodzenie warunku wstępnego) wraz z dodatkowymi informacjami o błędzie dotyczącymi warunku niezaspokojonego.

Jeśli podstawowy obiekt blob ma aktywną dzierżawę, możesz wykonać migawkę obiektu blob, o ile jeden z następujących warunków jest spełniony w żądaniu:

  • Określony jest nagłówek warunkowy x-ms-lease-id , a aktywny identyfikator dzierżawy dla podstawowego obiektu blob jest uwzględniony w żądaniu. Ten warunek określa, że migawka zostanie utworzona tylko wtedy, gdy dzierżawa jest aktywna, a określony identyfikator dzierżawy jest zgodny z obiektem blob skojarzonym z obiektem blob.

  • Nagłówek x-ms-lease-id nie jest w ogóle określony, w którym przypadku dzierżawa wykluczania zapisu jest ignorowana.

Należy pamiętać, że dzierżawa skojarzona z podstawowym obiektem blob nie jest kopiowana do migawki. Nie można dzierżawić migawek.

Podczas kopiowania podstawowego obiektu blob przy użyciu operacji kopiowania obiektu blob wszystkie migawki podstawowego obiektu blob nie są kopiowane do docelowego obiektu blob. Gdy docelowy obiekt blob zostanie zastąpiony kopią, wszystkie migawki skojarzone z docelowym obiektem blob pozostaną nienaruszone pod jego nazwą.

Aby przywrócić wcześniejszą wersję obiektu blob, można skopiować obiekt blob migawki na jego podstawowy obiekt blob. Migawka pozostaje, ale podstawowy obiekt blob jest zastępowany kopią, która może być odczytywana i zapisywana.

Uwaga

Podwyższenie poziomu migawki nie powoduje naliczania dodatkowych opłat za zasoby magazynu. Dzieje się tak, ponieważ bloki lub strony są współużytkowane między migawką a podstawowym obiektem blob.

Warstwę obiektu blob można ustawić na migawki, począwszy od wersji REST 2019-12-12. Jeśli warstwa jest ustawiona na głównym obiekcie blob, wszystkie migawki dziedziczą warstwę z podstawowego obiektu blob. Wykonanie migawki zarchiwizowanego obiektu blob zakończy się niepowodzeniem. Jawne ustawienie warstwy obiektu powoduje naliczanie opłat za pełny rozmiar obiektu. Tworzenie migawki obiektu blob z ustawionym warstwą powoduje pełne rozliczanie głównego obiektu blob i migawki. Aby uzyskać szczegółowe informacje na temat warstw na poziomie blokowych obiektów blob, zobacz Warstwy magazynowania Gorąca, Chłodna i Archiwum.

Istnieje kilka różnic między kontami usługi Azure Premium Storage a standardowymi kontami magazynu, w zakresie migawek:

  • Liczba migawek na stronicowy obiekt blob na koncie Premium Storage jest ograniczona do 100. Jeśli ten limit zostanie przekroczony, Snapshot Blob operacja zwróci kod błędu 409 (przekroczono liczbę migawek).

  • Migawkę stronicowego obiektu blob można utworzyć na koncie Premium Storage co dziesięć minut. Jeśli ta szybkość jest przekroczona, Snapshot Blob operacja zwraca kod błędu 409 (przekroczono szybkość operacji migawki).

  • Nie można odczytać migawki stronicowego obiektu blob na koncie Premium Storage przy użyciu polecenia Pobierz obiekt blob. W takiej sytuacji usługa zwraca kod błędu 400 (nieprawidłowa operacja). Można jednak wywołać metodę Pobierz właściwości obiektu blob i pobrać metadane obiektów blob względem migawki.

    Aby odczytać migawkę, możesz użyć operacji kopiowania obiektu blob , aby skopiować migawkę do innego stronicowego obiektu blob na koncie. Docelowy obiekt blob operacji kopiowania nie może mieć żadnych istniejących migawek. Jeśli docelowy obiekt blob ma migawki, Copy Blob zwraca kod błędu 409 (SnapshotsPresent).

Aby uzyskać więcej informacji, zobacz Using Blob Storage operations with Azure Premium Storage (Korzystanie z operacji usługi Blob Storage w usłudze Azure Premium Storage).

Po włączeniu obsługi wersji tworzenie migawki obiektu blob generuje również nową wersję i zapisuje poprzednią wersję podstawowego obiektu blob. Parametr x-ms-version-id zwraca nieprzezroczystą DateTime wartość dla nowej wersji obiektu blob.

Rozliczenia

Żądania cenowe mogą pochodzić od klientów korzystających z interfejsów API usługi Blob Storage bezpośrednio za pośrednictwem interfejsu API REST usługi Blob Storage lub biblioteki klienta usługi Azure Storage. Te żądania naliczają opłaty za transakcję. Typ transakcji wpływa na sposób naliczania opłat za konto. Na przykład transakcje odczytu są naliczane do innej kategorii rozliczeniowej niż transakcje zapisu. W poniższej tabeli przedstawiono kategorię rozliczeń dla Snapshot Blob żądań na podstawie typu konta magazynu:

Operacja Typ konta magazynu Kategoria rozliczeń
Wykonywanie migawki obiektu blob Blokowy obiekt blob w warstwie Premium
Standardowa ogólnego przeznaczenia, wersja 2
Standardowa ogólnego przeznaczenia, wersja 1
Operacje odczytu

Aby dowiedzieć się więcej o cenach dla określonej kategorii rozliczeń, zobacz Azure Blob Storage Cennik.

Zobacz też

Tworzenie migawki obiektu blob

Autoryzowanie żądań do usługi Azure Storage

Kody stanu i błędów

Kody błędów usługi Blob Storage