Przyrostowe kopiowanie obiektu blob
Operacja Incremental Copy Blob
kopiuje migawkę źródłowego stronicowego obiektu blob do docelowego stronicowego obiektu blob. Tylko różnice w porównaniu z wcześniej skopiowaną migawką są przenoszone do miejsca docelowego. Skopiowane migawki są kompletnymi kopiami oryginalnej migawki i można je odczytywać lub kopiować w zwykły sposób. Ten interfejs API jest obsługiwany od wersji REST 2016-05-31.
Żądanie
Żądanie można skonstruować Incremental Copy Blob
w następujący sposób. Zalecane jest użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu mycontainer nazwą kontenera, a ciąg myblob nazwą docelowego obiektu blob. Parametr comp
zapytania z wartością incrementalcopy
wskazuje, że to żądanie ma utworzyć migawkę przyrostową.
Identyfikator URI żądania PUT | Wersja PROTOKOŁU HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
Identyfikator URI usługi magazynu emulowanego
Po wysłaniu żądania względem usługi emulowanego magazynu określ nazwę hosta emulatora i port usługi Azure Blob Storage jako 127.0.0.1:10000, a następnie nazwę emulowanego konta magazynu. Wskazuje również, że to żądanie dotyczy kopiowania przyrostowego, ustawiając comp
parametr zapytania na incrementalcopy
wartość .
Identyfikator URI żądania PUT | Wersja PROTOKOŁU HTTP |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy |
HTTP/1.1 |
Aby uzyskać więcej informacji, zobacz Use 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ące dodatkowe parametry.
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ń i opcjonalne dla żądań anonimowych. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji dla usług Azure Storage. |
If-Modified-Since |
Opcjonalny.
DateTime Wartość. Określ ten nagłówek warunkowy, aby skopiować obiekt blob tylko wtedy, gdy docelowy obiekt blob został zmodyfikowany od określonej daty/godziny. Jeśli docelowy 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 skopiować obiekt blob tylko wtedy, gdy docelowy obiekt blob nie został zmodyfikowany od określonej daty/godziny. Jeśli docelowy 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 skopiować obiekt blob, tylko wtedy, gdy określona ETag wartość jest zgodna z ETag wartością istniejącego docelowego obiektu blob. Jeśli obiekt ETag blob dla docelowego obiektu blob nie jest zgodny z określonym parametrem ETag If-Match , usługa Blob Storage zwraca kod stanu 412 (Niepowodzenie warunku wstępnego). |
If-None-Match |
Opcjonalny.
ETag Wartość lub symbol wieloznaczny (* ).ETag Określ wartość dla tego nagłówka warunkowego, aby skopiować obiekt blob, tylko jeśli określona ETag wartość nie jest zgodna z ETag wartością docelowego obiektu blob.Określ symbol wieloznaczny ( * ), aby wykonać operację, tylko wtedy, gdy docelowy obiekt blob nie istnieje.Jeśli określony warunek nie zostanie spełniony, usługa Blob Storage zwróci kod stanu 412 (Niepowodzenie warunku wstępnego). |
x-ms-copy-source:name |
Wymagane. Określa nazwę migawki stronicowego obiektu blob źródłowego. Ta wartość jest adresem URL o długości do 2 kibibajtów (KiB), który określa migawkę stronicowego obiektu blob. Wartość powinna być zakodowana w adresie URL, tak jak byłaby wyświetlana w identyfikatorze URI żądania. Identyfikator URI źródłowego obiektu blob można autoryzować na jeden z dwóch sposobów: Źródłowy identyfikator URI obiektu blob może odwoływać się do stronicowej migawki obiektu blob, ale musi zawierać token sygnatury dostępu współdzielonego utworzony w podstawowym obiekcie blob migawki. Pole podpisanego zasobu ( sr ) sygnatury dostępu współdzielonego powinno mieć wartość b . Na przykład: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature> .Źródłowy identyfikator URI obiektu blob może odwoływać się do publicznej migawki stronicowego obiektu blob; na przykład https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> . |
x-ms-client-request-id |
Opcjonalny. Zapewnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-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. |
Treść żądania
Brak.
Reakcja
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kod stanu
Operacja zakończona powodzeniem zwraca kod stanu 202 (Zaakceptowano). 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 |
---|---|
ETag |
Zawiera wartość, której można użyć do warunkowego wykonywania operacji. Wartość jest wyrażona w cudzysłowie. |
Last-Modified |
Data i godzina ostatniej modyfikacji obiektu blob. Aby uzyskać więcej informacji, zobacz Reprezentacja wartości daty/godziny w nagłówkach. Każda operacja zapisu obiektu blob (w tym aktualizacje metadanych lub właściwości obiektu blob) zmienia czas ostatniej modyfikacji obiektu blob. |
x-ms-request-id |
Unikatowo identyfikuje żądanie, które zostało wykonane 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ę usługi Blob Storage używaną do uruchomienia żądania. |
Date |
Wartość daty/godziny UTC wskazująca godzinę, o której zainicjowano odpowiedź. Usługa generuje tę wartość. |
x-ms-copy-id: <id> |
Identyfikator ciągu dla tej operacji kopiowania. Użyj polecenia , Get Blob Properties aby sprawdzić stan tej operacji kopiowania lub przekazać polecenie , aby Abort Copy Blob zatrzymać oczekującą kopię. |
x-ms-copy-status: pending |
Stan operacji kopiowania. Jest to zawsze oczekujące, aby wskazać, że kopia została uruchomiona i jest w toku. |
x-ms-client-request-id |
Może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi odpowiedziami. Wartość tego nagłówka jest równa wartości nagłówka x-ms-client-request-id , jeśli jest obecna w żądaniu. Wartość jest najwyżej 1024 widocznymi znakami ASCII.
x-ms-client-request-id Jeśli nagłówek nie znajduje się w żądaniu, nie będzie on obecny w odpowiedzi. |
Treść odpowiedzi
Brak.
Przykładowa odpowiedź
Poniżej przedstawiono przykładową odpowiedź na żądanie wykonania kopii przyrostowej:
Response Status:
HTTP/1.1 202 Accepted
Response Headers:
Last-Modified: <date>
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date>
Autoryzacja
Autoryzacja jest wymagana podczas wywoływania dowolnej operacji dostępu do danych w usłudze Azure Storage. W poniższej sekcji opisano, jak można autoryzować obiekt docelowy dla Incremental Copy Blob
operacji. Dostęp do źródłowego obiektu blob lub pliku jest autoryzowany oddzielnie, zgodnie z opisem w szczegółach nagłówka x-ms-copy-source
żądania.
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ólnego.
Usługa Azure Storage obsługuje autoryzację żądań do danych obiektów blob przy użyciu Tożsamość Microsoft Entra. Dzięki 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ą dla użytkownika Microsoft Entra, grupy, tożsamości zarządzanej lub jednostki usługi w celu wywołania Incremental Copy Blob
operacji oraz najmniej uprzywilejowanej wbudowanej roli RBAC platformy Azure, która obejmuje tę akcję:
- Akcja RBAC platformy Azure:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (do zapisywania w istniejącym obiekcie blob) lub Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (do zapisywania nowego obiektu blob w miejscu docelowym)
- Najmniej uprzywilejowana wbudowana rola:Współautor danych obiektu blob usługi Storage
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
Miejsce docelowe kopii przyrostowej nie może istnieć lub musi zostać utworzone przy użyciu poprzedniej kopii przyrostowej z tego samego źródłowego obiektu blob. Po jego utworzeniu docelowy obiekt blob jest trwale skojarzony ze źródłem i może być używany tylko w przypadku kopii przyrostowych. Interfejsy Get Blob Properties
API i List Blobs
wskazują, czy obiekt blob jest obiektem blob kopii przyrostowej utworzonym w ten sposób.
Nie można bezpośrednio pobierać przyrostowych kopii obiektów blob. Jedyne obsługiwane operacje to Get Blob Properties
, Incremental Copy Blob
i Delete Blob
. Skopiowane migawki można odczytywać i usuwać w zwykły sposób.
Kopię przyrostową wykonuje się asynchronicznie w usłudze i musisz sondować pod kątem ukończenia. Zapoznaj się z interfejsem API, Copy Blob
aby uzyskać szczegółowe informacje na temat sondowania oczekującej kopii. Po zakończeniu kopiowania docelowy obiekt blob będzie zawierać nową migawkę. Interfejs Get Blob Properties
API zwraca czas migawki nowo utworzonej migawki.
Przy pierwszym wykonaniu kopii przyrostowej w docelowym obiekcie blob tworzony jest nowy obiekt blob z migawką, która jest w pełni kopiowana ze źródła. Każde kolejne wywołanie w celu Incremental Copy Blob
utworzenia nowej migawki przez skopiowanie tylko zmian różnicowych z wcześniej skopiowanej migawki.
Zmiany różnicowe są obliczane na serwerze przez wywołanie Get Page Ranges
migawki źródłowego obiektu blob. Ustaw prevsnapshot
na ostatnio skopiowaną migawkę. W związku z tym te same ograniczenia dotyczące Get Page Ranges
programu mają zastosowanie do elementu Incremental Copy Blob
. W szczególności należy skopiować migawki w kolejności rosnącej, a jeśli źródłowy obiekt blob zostanie ponownie utworzony przy użyciu polecenia Put Blob
lub Copy Blob
, Incremental Copy Blob
nowe migawki nie powiedzą się.
Dodatkowe miejsce do magazynowania używane przez skopiowaną migawkę to rozmiar danych różnicowych przesyłanych podczas kopiowania. Ten rozmiar można określić, wykonując wywołanie różnicowego Get Page Ranges
interfejsu API w migawce, aby porównać go z poprzednią migawką.
Zobacz też
Autoryzowanie żądań do usługi Azure Storage
Kody stanu i błędów
Ustawianie limitów czasu dla operacji usługi Blob Storage