Udostępnij za pośrednictwem


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łem Copy Blob From URL operacji może być dowolny zatwierdzony blokowy obiekt 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 mycontainer nazwą kontenera, a ciąg 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

Gdy wysyłasz żądanie 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

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ń. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji dla usług Azure Storage.
x-ms-meta-name:value Opcjonalny. Określa parę nazwa/wartość zdefiniowana przez użytkownika skojarzona z obiektem blob. Jeśli nie określono żadnych par nazwa/wartość, operacja skopiuje metadane ze źródłowego obiektu blob lub pliku do docelowego obiektu blob. Jeśli określono co najmniej jedną parę nazwa/wartość, docelowy obiekt blob jest tworzony z określonymi metadanymi, 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 (z uwzględnieniem wielkości 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ć uprawnienia 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 przez x-ms-tags 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 parametru 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. DateTime Wartość. 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 (Niepowodzenie warunku wstępnego). Nie można określić tego nagłówka, jeśli źródłem jest plik platformy Azure.
x-ms-source-if-unmodified-since Opcjonalny. DateTime Wartość. 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 (Niepowodzenie warunku wstępnego). 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 (Niepowodzenie warunku wstępnego). 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 (Niepowodzenie warunku wstępnego). Nie można określić tego nagłówka, jeśli źródłem jest plik platformy Azure.
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 wartości nie są zgodne, 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 wtedy, gdy określona ETag wartość nie jest zgodna z wartością ETag 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 (Warunek wstępny nie powiodło się).
x-ms-copy-source:name Wymagane. Określa adres URL źródłowego obiektu blob. Wartość może być adresem URL do 2 kibibajtów (KiB) o długości, która określa obiekt blob. Wartość powinna być zakodowana w adresie URL, ponieważ jest 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 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 adresów URL obiektów źródłowych:

- 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 kopiowania. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
Tylko element nośny schematu jest obsługiwany w przypadku Microsoft Entra.
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 kopiowania 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 (Warunek wstępny nie powiodło się).

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 (Warunek wstępny nie powiodło się).

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. Udostępnia 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 na 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 i 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 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.

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

Wartość ETag jest w cudzysłowie.
Last-Modified Zwraca datę/godzinę zakończenia operacji kopiowania do docelowego obiektu blob.
x-ms-request-id Jednoznacznie identyfikuje wykonane żądanie. 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ę, w 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 im odpowiedziami. Wartość tego nagłówka jest równa wartości x-ms-client-request-id nagłówka, jeśli znajduje się w żądaniu, a wartość wynosi co najwyżej 1024 widoczne znaki ASCII. x-ms-client-request-id Jeśli nagłówek nie znajduje się w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi.
x-ms-request-server-encrypted: true/false Ustaw wartość , true jeśli zawartość żądania zostanie pomyślnie zaszyfrowana za pośrednictwem określonego algorytmu. W przeciwnym razie wartość to false.
x-ms-encryption-scope Zwrócone, jeśli żądanie użyło 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 sposób autoryzacji obiektów docelowych i źródłowych dla Copy Blob From URL operacji:

Typ obiektu autoryzacja Tożsamość Microsoft Entra Autoryzacja sygnatury dostępu współdzielonego (SAS) Autoryzacja klucza współdzielonego (lub klucz udostępniony 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ę zgodnie z Copy Blob From URL 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 .

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 Copy Blob From URL operacji oraz najmniej uprzywilejowanej wbudowanej roli RBAC platformy Azure, która obejmuje 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 lub nowszej autoryzacja Microsoft Entra 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ą liczbę zatwierdzonych 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 i metadanych obiektu blob

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 źródłowego obiektu blob jest również kopiowana do docelowego obiektu blob. Żadne niezatwierdzone bloki nie są kopiowane.

Docelowy obiekt blob jest zawsze tym samym rozmiarem co źródłowy obiekt blob, więc wartość Content-Length nagłówka docelowego obiektu blob jest zgodna z wartością tego nagłówka źródłowego obiektu blob.

x-ms-tags Jeśli nagłówek zawiera tagi dla docelowego obiektu blob, muszą być zakodowane w ciągu zapytania. Klucze i wartości tagów 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 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 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 obciążane opłatą 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 rozliczeń, 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