Kopiowanie obiektu blob z adresu URL

Operacja Copy Blob From URL kopiuje obiekt blob do miejsca docelowego w ramach konta magazynu synchronicznie dla źródłowych rozmiarów obiektów blob do 256 mebibajtów (MiB). Ten interfejs API jest dostępny od wersji 2018-03-28.

Źródło Copy Blob From URL operacji może być dowolnym zatwierdzonym blokowym obiektem blob na dowolnym koncie usługi Azure Storage, które jest publiczne lub autoryzowane za pomocą sygnatury dostępu współdzielonego.

Żądanie

Żądanie można skonstruować Copy Blob From URL w następujący sposób. Zalecamy użycie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu, ciągiem mycontainer nazwą kontenera, a obiekt myblob nazwą docelowego obiektu blob.

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

Identyfikator URI emulowanej usługi magazynu

Podczas wysyłania żą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 magazynu:

IDENTYFIKATOR URI żądania PUT Wersja PROTOKOŁU HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob 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ą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ń. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage.
x-ms-meta-name:value Opcjonalny. Określa parę nazw/wartości zdefiniowanych przez użytkownika skojarzonych z obiektem blob. Jeśli nie określono par nazw/wartości, operacja skopiuje metadane ze źródłowego obiektu blob lub pliku do docelowego obiektu blob. Jeśli określono co najmniej jedną parę nazw/wartości, docelowy obiekt blob jest tworzony przy użyciu określonych metadanych, a metadane nie są kopiowane ze źródłowego obiektu blob lub pliku.

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.
x-ms-encryption-scope Opcjonalny. Wskazuje zakres szyfrowania na potrzeby szyfrowania zawartości żądania. Ten nagłówek jest obsługiwany w wersji 2020-12-06 lub nowszej.
x-ms-tags Opcjonalny. Ustawia tagi zakodowane w ciągu zapytania w obiekcie blob. Tagi nie są kopiowane ze źródła kopiowania. Aby uzyskać więcej informacji, zobacz Uwagi. Obsługiwane w wersji 2019-12-12 lub nowszej.
x-ms-copy-source-tag-option Opcjonalny. Możliwe wartości to REPLACE i COPY (uwzględniana wielkość liter). Wartość domyślna to REPLACE.

Jeśli COPY zostanie określony, tagi ze źródłowego obiektu blob zostaną skopiowane do docelowego obiektu blob. Źródłowy obiekt blob musi być prywatny, a żądanie musi mieć uprawnienie do operacji Pobieranie tagów obiektów blob w źródłowym obiekcie blob i operacji Ustawianie tagów obiektów blob w docelowym obiekcie blob. Spowoduje to dodatkowe wywołanie Get Blob Tags operacji na koncie źródłowym.

REPLACE ustawi tagi określone x-ms-tags przez nagłówek w docelowym obiekcie blob. Jeśli x-ms-tags określa REPLACE i nie ma tagów, żadne tagi nie zostaną ustawione w docelowym obiekcie blob. Określenie COPY i x-ms-tags spowoduje błąd 409 (konflikt).

Obsługiwane w wersji 2021-04-10 lub nowszej.
x-ms-source-if-modified-since Opcjonalny. Wartość DateTime . Określ ten nagłówek warunkowy, aby skopiować obiekt blob tylko wtedy, gdy źródłowy obiekt blob został zmodyfikowany od określonej daty/godziny. Jeśli źródłowy obiekt blob nie został zmodyfikowany, usługa Blob Storage zwraca kod stanu 412 (Warunek wstępny nie powiodło się). Nie można określić tego nagłówka, jeśli źródłem jest plik platformy Azure.
x-ms-source-if-unmodified-since Opcjonalny. Wartość DateTime . Określ ten nagłówek warunkowy, aby skopiować obiekt blob tylko wtedy, gdy źródłowy obiekt blob nie został zmodyfikowany od określonej daty/godziny. Jeśli źródłowy obiekt blob został zmodyfikowany, usługa Blob Storage zwraca kod stanu 412 (Warunek wstępny nie powiodło się). Nie można określić tego nagłówka, jeśli źródłem jest plik platformy Azure.
x-ms-source-if-match Opcjonalny. Wartość ETag . Określ ten nagłówek warunkowy, aby skopiować źródłowy obiekt 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ę). Nie można określić tego nagłówka, jeśli źródłem jest plik platformy Azure.
x-ms-source-if-none-match Opcjonalny. Wartość ETag . Określ ten nagłówek warunkowy, aby skopiować obiekt 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ę). Nie można określić tego nagłówka, jeśli źródłem jest plik platformy Azure.
If-Modified-Since Opcjonalny. Wartość DateTime . 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 (Warunek wstępny nie powiodło się).
If-Unmodified-Since Opcjonalny. Wartość DateTime . 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 (Warunek wstępny nie powiodło się).
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 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 lub symbol wieloznaczny (*).

ETag Określ wartość tego nagłówka warunkowego, aby skopiować obiekt blob tylko wtedy, gdy określona ETag wartość nie jest zgodna z ETag wartością docelowego obiektu blob.

Określ symbol wieloznaczny (*) do wykonania operacji 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 adres URL źródłowego obiektu blob. Wartość może być adresem URL o długości do 2 kibibajtów (KiB), który określa obiekt blob. Wartość powinna być zakodowana w adresie URL, tak jak byłaby wyświetlana w identyfikatorze URI żądania. Źródłowy obiekt blob musi być publiczny lub autoryzowany za pośrednictwem sygnatury dostępu współdzielonego. Jeśli źródłowy obiekt blob jest publiczny, do wykonania operacji nie jest wymagana żadna autoryzacja. Jeśli rozmiar źródłowego obiektu blob jest większy niż 256 MiB, żądanie kończy się niepowodzeniem z błędem 409 (konflikt). Typ obiektu blob źródłowego obiektu blob musi być blokowym obiektem blob. Oto kilka przykładów źródłowych adresów URL obiektów:

- https://myaccount.blob.core.windows.net/mycontainer/myblob
- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
x-ms-copy-source-authorization: <scheme> <signature> Opcjonalny. Określa schemat autoryzacji i podpis dla źródła kopii. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
Tylko element nośny schematu jest obsługiwany w usłudze Azure Active Directory.
Ten nagłówek jest obsługiwany w wersji 2020-10-02 lub nowszej.
x-ms-requires-sync:true Wymagane. Wskazuje, że jest to operacja synchroniczna Copy Blob From URL zamiast operacji asynchronicznej Copy Blob .
x-ms-source-content-md5 Opcjonalny. Określa skrót MD5 zawartości obiektu blob z identyfikatora URI. Ten skrót służy do weryfikowania integralności obiektu blob podczas transportu danych z identyfikatora URI. Po określeniu tego nagłówka usługa magazynu porównuje skrót zawartości, która dotarła ze źródła kopii z tą wartością nagłówka.

Skrót MD5 nie jest przechowywany w obiekcie blob.

Jeśli dwa skróty nie są zgodne, operacja kończy się niepowodzeniem z kodem błędu 400 (Nieprawidłowe żądanie).
x-ms-lease-id:<ID> Wymagane, jeśli docelowy obiekt blob ma aktywną dzierżawę. Identyfikator dzierżawy określony dla tego nagłówka musi być zgodny z identyfikatorem dzierżawy docelowego obiektu blob. Jeśli żądanie nie zawiera identyfikatora dzierżawy lub jest nieprawidłowe, operacja kończy się niepowodzeniem z kodem stanu 412 (Niepowodzenie warunku wstępnego).

Jeśli ten nagłówek jest określony, a docelowy obiekt blob nie ma obecnie aktywnej dzierżawy, operacja kończy się niepowodzeniem z kodem stanu 412 (Niepowodzenie warunku wstępnego).

W wersji 2012-02-12 lub nowszej ta wartość musi określać aktywną, nieskończoną dzierżawę dla dzierżawionego obiektu blob. Identyfikator dzierżawy o skończonym czasie trwania 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-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.
x-ms-access-tier Opcjonalny. Określa warstwę, która ma zostać ustawiona w docelowym obiekcie blob. Ten nagłówek dotyczy stronicowych obiektów blob na koncie premium tylko w wersji 2017-04-17 lub nowszej. Aby uzyskać pełną listę obsługiwanych warstw, zobacz Magazyn w warstwie Premium o wysokiej wydajności i dyski zarządzane dla maszyn wirtualnych. Ten nagłówek jest obsługiwany w wersji 2018-11-09 lub nowszej dla blokowych obiektów blob. Obsługa warstw blokowych obiektów blob jest obsługiwana na kontach usługi Blob Storage lub Ogólnego przeznaczenia v2. Prawidłowe wartości to Hot, Cool, Cold i Archive. Uwaga:Cold warstwa jest obsługiwana w wersji 2021-12-02 lub nowszej. Aby uzyskać szczegółowe informacje na temat warstw blokowych obiektów blob, zobacz Warstwy magazynowania Gorąca, Chłodna i Archiwum.

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.

Nagłówek odpowiedzi Opis
ETag Jeśli kopia została ukończona, zawiera ETag wartość docelowego obiektu blob. Jeśli kopia nie została ukończona, zawiera ETag wartość pustego obiektu blob utworzonego na początku kopii.

Wartość jest wyrażona ETag w cudzysłowie.
Last-Modified Zwraca datę/godzinę zakończenia operacji kopiowania do docelowego obiektu blob.
x-ms-request-id Unikatowo identyfikuje żądanie, które zostało wykonane. Można go 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, która jest używana do wykonania żądania.
Date Wartość daty/godziny UTC wskazująca godzinę, o której usługa wysłała odpowiedź.
x-ms-copy-id: <id> Identyfikator ciągu dla tej operacji kopiowania.
x-ms-copy-status: <success> Wskazuje stan operacji kopiowania. Wartość success oznacza, że operacja zakończyła się pomyślnie.
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, a wartość wynosi najwyżej 1024 widoczne znaki ASCII. x-ms-client-request-id Jeśli nagłówek nie istnieje w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi.
x-ms-request-server-encrypted: true/false Ustaw wartość na true , jeśli zawartość żądania została pomyślnie zaszyfrowana za pomocą określonego algorytmu. W przeciwnym razie wartość to false.
x-ms-encryption-scope Zwrócone, jeśli żądanie używa zakresu szyfrowania, aby klient mógł upewnić się, że zawartość żądania została pomyślnie zaszyfrowana za pośrednictwem zakresu szyfrowania.

Treść odpowiedzi

Brak.

Przykładowa odpowiedź

Poniżej przedstawiono przykładową odpowiedź na żądanie kopiowania obiektu blob:

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: 2018-03-28  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: success  
Date: <date>  
  

Autoryzacja

Autoryzacja jest wymagana podczas wywoływania dowolnej operacji dostępu do danych w usłudze Azure Storage. W poniższej tabeli opisano, jak można autoryzować obiekty docelowe i źródłowe dla Copy Blob From URL operacji:

Typ obiektu autoryzacja Tożsamość Microsoft Entra Autoryzacja sygnatury dostępu współdzielonego (SAS) Autoryzacja klucza wspólnego (lub klucz współużytkowany Lite)
Docelowy blokowy obiekt blob Tak Tak Tak
Źródłowy blokowy obiekt blob na tym samym koncie magazynu Tak Tak Tak
Źródłowy blokowy obiekt blob na innym koncie magazynu Nie Tak Nie

Jeśli żądanie określa tagi w nagłówku x-ms-tags żądania, obiekt wywołujący musi spełniać wymagania autoryzacji operacji Ustawianie tagów obiektów blob .

Możesz autoryzować operację Copy Blob From URL zgodnie z poniższym opisem. Należy pamiętać, że źródłowy obiekt blob na innym koncie magazynu musi być autoryzowany oddzielnie za pośrednictwem tokenu SAS z uprawnieniem Odczyt (r). Aby uzyskać więcej informacji na temat autoryzacji źródłowego obiektu blob, zobacz szczegóły nagłówka x-ms-copy-sourceżądania .

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ą do wywołania Copy Blob From URL operacji przez użytkownika, grupę lub jednostkę usługi Microsoft Entra oraz najmniej uprzywilejowaną wbudowaną rolę RBAC platformy Azure obejmującą tę akcję:

Docelowy obiekt blob

Źródłowy obiekt blob na tym samym koncie magazynu

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

Źródłowy i docelowy obiekt blob dla Copy Blob From URL operacji musi być blokowym obiektem blob.

W wersji 2020-10-02 i nowszej autoryzacja usługi Azure Active Directory jest obsługiwana dla źródła operacji kopiowania.

Operacja Copy Blob From URL zawsze kopiuje cały źródłowy obiekt blob. Kopiowanie zakresu bajtów lub zestawu bloków nie jest obsługiwane.

Źródłowy obiekt blob można skopiować do docelowego obiektu blob o innej nazwie. Docelowy obiekt blob może być istniejącym blokowym obiektem blob lub może być nowym obiektem blob tworzonym przez operację kopiowania.

Podczas kopiowania z blokowego obiektu blob wszystkie zatwierdzone bloki i ich identyfikatory bloków są kopiowane. Niezatwierdzone bloki nie są kopiowane. Na końcu operacji kopiowania docelowy obiekt blob będzie miał taką samą zatwierdzoną liczbę bloków co źródło.

Wartość ETag blokowego obiektu blob zmienia się po uruchomieniu Copy Blob From URL operacji i zakończeniu operacji.

Kopiowanie właściwości obiektów blob i metadanych

Po skopiowaniu blokowego obiektu blob następujące właściwości systemowe są kopiowane do docelowego obiektu blob z tymi samymi wartościami:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

Zatwierdzona lista bloków obiektu blob źródłowego jest również kopiowana do docelowego obiektu blob. Żadne niezatwierdzone bloki nie są kopiowane.

Docelowy obiekt blob jest zawsze taki sam jak źródłowy obiekt blob, więc wartość Content-Length nagłówka docelowego obiektu blob odpowiada wartości tego nagłówka źródłowego obiektu blob.

x-ms-tags Jeśli nagłówek zawiera tagi docelowego obiektu blob, muszą one być zakodowane w ciągu zapytania. Klucze tagów i wartości muszą być zgodne z wymaganiami dotyczącymi nazewnictwa i długości określonymi w operacji Ustawianie tagów obiektów blob .

Nagłówek x-ms-tags może zawierać maksymalnie 2 kilobity tagów. Jeśli potrzebujesz więcej tagów, użyj Set Blob Tags operacji .

x-ms-tags Jeśli nagłówek nie udostępnia tagów, tagi nie są kopiowane ze źródłowego obiektu blob.

Kopiowanie dzierżawionego obiektu blob

Operacja Copy Blob From URL jest odczytywana tylko ze źródłowego obiektu blob, więc stan dzierżawy źródłowego obiektu blob nie ma znaczenia.

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 Copy Blob From URL żądań na podstawie typu konta magazynu:

Operacja Typ konta magazynu Kategoria rozliczeń
Kopiowanie obiektu blob z adresu URL (konto docelowe1) Blokowy obiekt blob w warstwie Premium
Standardowa ogólnego przeznaczenia, wersja 2
Standardowa ogólnego przeznaczenia, wersja 1
Operacje zapisu
Kopiowanie obiektu blob z adresu URL (konto źródłowe2) Blokowy obiekt blob w warstwie Premium
Standardowa ogólnego przeznaczenia, wersja 2
Standardowa ogólnego przeznaczenia, wersja 1
Operacje odczytu

1Konto docelowe jest naliczane za jedną transakcję w celu zainicjowania zapisu.
2Konto źródłowe powoduje naliczenie jednej transakcji dla każdego żądania odczytu do obiektu źródłowego.

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

Ponadto jeśli konta źródłowe i docelowe znajdują się w różnych regionach (na przykład Północno-wschodnie stany USA i Południowe stany USA), przepustowość używana do przeniesienia żądania jest naliczana na źródłowym koncie magazynu jako ruch wychodzący. Ruch wychodzący między kontami w tym samym regionie jest bezpłatny.

Podczas kopiowania źródłowego obiektu blob do docelowego obiektu blob o innej nazwie na tym samym koncie należy użyć dodatkowych zasobów magazynu dla nowego obiektu blob. Operacja kopiowania powoduje naliczanie opłat za użycie pojemności konta magazynu dla tych dodatkowych zasobów.

Zobacz też

Autoryzowanie żądań do usługi Azure Storage
Kody stanu i błędów
Kody błędów usługi Blob Storage
Opis sposobu naliczania opłat za migawki