Udostępnij za pośrednictwem


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 port Azure Blob Storage 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

Dla identyfikatora 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 dla 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 z określonymi metadanymi, 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. DateTime Wartość. 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 (Niepowodzenie warunku wstępnego).
If-Unmodified-Since Opcjonalny. DateTime Wartość. Określ ten nagłówek warunkowy, aby utworzyć migawkę obiektu blob, tylko wtedy, gdy nie został zmodyfikowany od określonej daty/godziny. Jeśli podstawowy obiekt blob został zmodyfikowany, usługa Blob Storage zwraca kod stanu 412 (Niepowodzenie warunku wstępnego).
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 (Niepowodzenie warunku wstępnego).
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 (Niepowodzenie warunku wstępnego).
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 lub nowszej.
x-ms-lease-id:<ID> Opcjonalny. Jeśli określisz ten nagłówek, operacja jest wykonywana tylko wtedy, gdy zostaną spełnione oba z następujących warunków:

— 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 i którykolwiek 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. Zapewnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB) rejestrowanym 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życie 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 w żądaniu szyfrowania obiektu blob przy użyciu klucza dostarczonego przez klienta. Szyfrowanie przy użyciu klucza dostarczonego przez klienta (i odpowiadającego mu 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ć dołączone do żądania, 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 na potrzeby 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

Pomyślna operacja zwraca kod stanu 201 (Utworzony). Aby uzyskać informacje o kodach stanu, zobacz Kody stanu i 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 standardowe nagłówki 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.

Ważne

Firma Microsoft zaleca używanie Tożsamość Microsoft Entra z tożsamościami zarządzanymi w celu autoryzowania żądań do usługi Azure Storage. Tożsamość Microsoft Entra zapewnia doskonałe zabezpieczenia i łatwość użycia w porównaniu z autoryzacją klucza współdzielonego.

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 przedstawiono akcję RBAC niezbędną do Microsoft Entra użytkownika, grupy, tożsamości zarządzanej lub jednostki usługi w celu wywołania Snapshot Blob operacji oraz najmniej uprzywilejowanej wbudowanej roli 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 tę DateTime wartość należy traktować 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>

Pamiętaj, ż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. Usuwasz je jawnie, wywołując polecenie Usuń obiekt blob i ustawiając x-ms-include-snapshots nagłówek na odpowiednią wartość.

Pomyślne wywołanie metody Snapshot Blob zwraca DateTime 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 następujące właściwości systemowe są kopiowane do migawki 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 i nowsze)

  • x-ms-copy-status (wersja 2012-02-12 i nowsze)

  • x-ms-copy-source (wersja 2012-02-12 i nowsze)

  • x-ms-copy-progress (wersja 2012-02-12 i nowsze)

  • x-ms-copy-completion-time (wersja 2012-02-12 i nowsze)

  • x-ms-copy-status-description (wersja 2012-02-12 i nowsze)

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ść nagłówka Content-Length migawki obiektu blob będzie taka sama jak w przypadku 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.

W żądaniu można określić nagłówki warunkowe, 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 utworzyć migawkę obiektu blob, o ile jedno z następujących warunków jest spełnione w żądaniu:

  • Określony jest nagłówek warunkowy x-ms-lease-id , a aktywny identyfikator dzierżawy 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.

  • Nagłówek x-ms-lease-id nie jest w ogóle określony, w tym 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 żadne 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żesz skopiować obiekt blob migawki na jego podstawowy obiekt blob. Migawka pozostaje, ale podstawowy obiekt blob jest zastępowany kopią, którą można odczytywać i zapisywać.

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 przez migawkę i podstawowy obiekt 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. Utworzenie migawki obiektu blob z ustawioną warstwą powoduje pełne rozliczanie kopii 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 i kontami magazynu w warstwie Standardowa, jeśli chodzi o migawki:

  • 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ść zostanie przekroczona, Snapshot Blob operacja zwróci 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ę Get Blob Properties (Pobieranie właściwości obiektu blob ) i Get Blob Metadata (Pobieranie metadanych obiektu 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 zawiera 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).

Gdy przechowywanie wersji jest włączone, utworzenie migawki obiektu blob powoduje również wygenerowanie nowej wersji i zapisanie poprzedniej wersji podstawowego obiektu blob. Parametr x-ms-version-id zwraca nieprzezroczystą DateTime wartość dla nowej wersji obiektu blob.

Rozliczenia

Żądania cen 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 w 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 rozliczeniowej, 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