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 development (Korzystanie z emulatora Azurite na potrzeby lokalnego programowania служба хранилища Azure).
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 служба хранилища Azure. |
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 служба хранилища Azure. |
x-ms-version |
Wymagane dla wszystkich autoryzowanych żądań. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji dla usług служба хранилища Azure. |
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 (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 служба хранилища Azure. 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 1-KiB, który jest rejestrowany w dziennikach usługi Azure Monitor 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 Rejestrowanie platformy Azure: używanie dzienników do śledzenia żądań magazynu. |
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
Ta operacja może być wywoływana przez właściciela konta i przez każdego, kto ma sygnaturę dostępu współdzielonego, który ma uprawnienia do zapisu w tym obiekcie blob lub jego kontenerze.
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 .
Jeśli żądanie określa tagi z nagłówkiem x-ms-tags
żądania, obiekt wywołujący musi spełniać wymagania autoryzacji operacji Ustawianie tagów 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 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ą 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
Konto docelowe Copy Blob From URL
operacji jest obciążane opłatą za jedną transakcję w celu rozpoczęcia operacji. Konto docelowe wiąże się również z jedną transakcją dla każdego żądania do źródła operacji kopiowania.
Konto źródłowe wiąże się również z kosztami transakcji. 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 obciążana źródłowym kontem 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 служба хранилища Azure
Kody stanu i błędów
Kody błędów usługi Blob Storage
Opis sposobu naliczania opłat za migawki