Umieść blok z adresu URL

Operacja tworzy nowy blok do zatwierdzona jako część obiektu blob, w którym Put Block From URL zawartość jest odczytywana z adresu URL. Ten interfejs API jest dostępny od wersji 2018-03-28 .

Żądanie

Żądanie Put Block From URL może zostać skonstruowane w następujący sposób. Protokół HTTPS jest zalecany. Zastąp myaccount nazwą swojego konta magazynu:

PUT Method Request URI Wersja PROTOKOŁU HTTP
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Emulowany Storage URI usługi

Podczas tworzenia żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i port Blob service jako , a następnie 127.0.0.1:10000 nazwę emulowanej konta magazynu:

PUT Method Request URI Wersja PROTOKOŁU HTTP
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Aby uzyskać więcej informacji, zobacz Using the Azure Storage Emulator for Development and Testing (Używanie usługi Azure Storage Emulator for Development and Testing).

Parametry identyfikatora URI

Parametr Opis
blockid Wymagane. Prawidłowa wartość ciągu Base64, która identyfikuje blok. Przed kodowaniem ciąg musi być mniejszy lub równy 64 bajtom.

Dla danego obiektu blob długość wartości określonej dla parametru musi być taka sama dla blockid każdego bloku.

Należy pamiętać, że ciąg Base64 musi być zakodowany w adresie URL.
timeout Opcjonalny. Parametr timeout jest wyrażony w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi Blob Service.

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 Authorize requests to Azure Storage (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 Versioning for the Azure Storage Services (Wersjeusług Azure Storage Services). W przypadku pliku Put Block From URL (Umieść blok z adresu URL) należy wprowadzić wersję 2018-03-28 lub nowszą.
Content-Length Wymagane. Określa liczbę bajtów przesyłanych w treści żądania. Wartość tego nagłówka musi być ustawiona na zero. Gdy długość nie jest równa zero, operacja nie powiedzie się z kodem stanu 400 (Złe żądanie).
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 KiB, który określa obiekt blob. Wartość powinna być zakodowana w adresie URL, tak jak byłaby wyświetlana w polu URI żądania. Źródłowy obiekt blob musi być publiczny lub musi być autoryzowany za pośrednictwem sygnatury dostępu współdzielowego. Jeśli źródłowy obiekt blob jest publiczny, do wykonania operacji nie jest wymagana autoryzacja. 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 kopii. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
Tylko bearer schematu jest obsługiwany dla Azure Active Directory.
Ten nagłówek jest obsługiwany w wersjach 2020-10-02 i nowszych.
x-ms-source-range Opcjonalny. Przekazywanie tylko bajtów obiektu blob w źródłowym adresie URL w określonym zakresie. Jeśli nie zostanie to określone, cała zawartość źródłowego obiektu blob zostanie przesłana jako pojedynczy blok. Aby uzyskać więcej informacji, zobacz Specifying the Range Header for Blob Service Operations (Określanie nagłówka zakresu dla operacji usługi Blob Service).
x-ms-source-content-md5 Opcjonalny. Skrót MD5 zawartości bloku z URI. Ten skrót służy do weryfikowania integralności bloku podczas transportu danych z URI. Gdy ten nagłówek jest określony, usługa magazynu porównuje skrót zawartości, która dotarła ze źródła kopii, z tą wartością nagłówka.

Należy pamiętać, że ten skrót md5 nie jest przechowywany razem z obiektem blob.

Jeśli te dwa skróty nie są zgodne, operacja nie powiedzie się z kodem błędu 400 (Złe żądanie).
x-ms-source-content-crc64 Opcjonalny. Skrót CRC64 zawartości bloku z URI. Ten skrót służy do weryfikowania integralności bloku podczas transportu danych z URI. Gdy ten nagłówek jest określony, usługa magazynu porównuje skrót zawartości, która dotarła ze źródła kopii, z tą wartością nagłówka.

Należy pamiętać, że ten skrót CRC64 nie jest przechowywany z obiektem blob.

Jeśli te dwa skróty nie są zgodne, operacja nie powiedzie się z kodem błędu 400 (Złe żądanie).

Jeśli istnieją nagłówki i , żądanie nie powiedzie się z x-ms-source-content-md5 x-ms-source-content-crc64 400 (Złym żądaniem).

Ten nagłówek jest obsługiwany w wersjach 2019-02-02 lub nowszych.
x-ms-encryption-scope Opcjonalny. Wskazuje zakres szyfrowania używany do szyfrowania zawartości źródłowej. Ten nagłówek jest obsługiwany w wersjach 2019-02-02 lub nowszych.
x-ms-lease-id:<ID> Wymagane, jeśli obiekt blob ma aktywną dzierżawę. Aby wykonać tę operację na obiekcie blob z aktywną dzierżawą, określ prawidłowy identyfikator dzierżawy dla tego nagłówka.
x-ms-client-request-id Opcjonalny. Zapewnia wygenerowaną przez klienta nieprzezroczystą wartość z limitem znaków 1 KiB, który jest rejestrowany w dziennikach analizy po włączeniu rejestrowania analizy magazynu. Używanie tego nagłówka jest wysoce zalecane do korelowania działań po stronie klienta z żądaniami odebranymi przez serwer. Aby uzyskać więcej informacji, zobacz About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests (Informacje o rejestrowaniu usługi Azure Analytics i rejestrowaniu na platformie Azure: używanie dzienników do śledzenia Storage żądań).

Nagłówki żądań (klucze szyfrowania dostarczane przez klienta)

Począwszy od wersji 2019-02-02, w żądaniu można określić następujące nagłówki w celu zaszyfrowania obiektu blob przy użyciu klucza dostarczonego przez klienta. Szyfrowanie za pomocą klucza dostarczonego przez klienta (i odpowiedniego zestawu nagłówków) jest opcjonalne.

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 klucza szyfrowania zakodowany w formacie Base64.
x-ms-encryption-algorithm: AES256 Wymagane. Określa algorytm używany do szyfrowania. Wartość tego nagłówka musi być AES256 .

Treść żądania

Brak treści żądania.

Przykładowe żądanie

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1  
  
Request Headers:  
x-ms-version: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

Reakcja

Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.

Kod stanu

Pomyślna operacja zwraca kod stanu 201 (Utworzono).

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
Content-MD5 Ten nagłówek jest zwracany, dzięki czemu klient może sprawdzić integralność zawartości wiadomości. Wartość tego nagłówka jest obliczana przez Blob service; Nie musi to być ta sama wartość określona w nagłówkach żądania. W przypadku wersji 2019-02-02 lub nowszej ten nagłówek jest zwracany tylko wtedy, gdy żądanie ma ten nagłówek.
x-ms-content-crc64 W przypadku wersji 2019-02-02 lub nowszej ten nagłówek jest zwracany, aby klient może sprawdzić integralność zawartości wiadomości. Wartość tego nagłówka jest obliczana przez Blob service; Nie musi to być ta sama wartość określona w nagłówkach żądania.

Ten nagłówek jest zwracany, x-ms-source-content-md5 gdy nagłówek nie jest obecny w żądaniu.
x-ms-request-id Ten nagłówek 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 Troubleshooting API Operations (Rozwiązywanie problemów z operacjami interfejsu API).
x-ms-version Wskazuje wersję pliku Blob service do wykonania żądania.
Date Wartość daty/czasu UTC wygenerowana przez usługę, która wskazuje czas, o której została zainicjowana odpowiedź.
x-ms-request-server-encrypted: true/false Wersja 2015-12-11 lub nowsza. Wartość tego nagłówka jest ustawiona na , jeśli zawartość bloku została pomyślnie zaszyfrowana przy użyciu true określonego algorytmu i false w przeciwnym razie.
x-ms-encryption-key-sha256 Wersja 2019-02-02 lub nowsza. Ten nagłówek jest zwracany, jeśli żądanie używa klucza dostarczonego przez klienta do szyfrowania, dzięki czemu 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. Ten nagłówek jest zwracany, jeśli żądanie używa zakresu szyfrowania, dzięki czemu klient może upewnić się, że zawartość żądania została pomyślnie zaszyfrowana przy użyciu zakresu szyfrowania.
x-ms-client-request-id Ten nagłówek 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, jeśli jest obecny w żądaniu, a wartość jest co najwyżej 1024 widocznych znaków x-ms-client-request-id ASCII. Jeśli nagłówek x-ms-client-request-id nie jest obecny w żądaniu, ten nagłówek nie będzie obecny w odpowiedzi.

Przykładowa odpowiedź

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sat, 31 Mar 2018 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Autoryzacja

Ta operacja może zostać wywołana przez właściciela konta i przez każdego, kto ma sygnaturę dostępu współdzielonych z uprawnieniami do zapisu do tego obiektu blob lub jego kontenera.

Uwagi

Put Block From URL program przekaże blok do przyszłego włączenia do blokowego obiektu blob. Blokowy obiekt blob może zawierać maksymalnie 50 000 bloków. Każdy blok może mieć inny rozmiar. Maksymalny rozmiar bloku przekazanego za Put Block From URL pomocą pliku to 100 MiB. Aby przekazać większe bloki (do 4000 MiB), zobacz Put Block.

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

Obiekt blob może mieć maksymalnie 100 000 niezatwierdzony bloków w danym momencie. Jeśli to maksimum zostanie przekroczone, usługa zwraca kod stanu 409 (RequestEntityTooLargeBlockCountExceedsLimit).

W poniższej tabeli opisano maksymalne rozmiary bloków i obiektów blob dozwolone przez wersję usługi.

Wersja usługi Maksymalny rozmiar bloku (za pośrednictwem bloku put z adresu URL) Maksymalny rozmiar obiektu blob (za pośrednictwem listy bloków put) Maksymalny rozmiar obiektu blob za pośrednictwem pojedynczej operacji zapisu (za pośrednictwem operacji Put Blob from URL (Umieść obiekt blob z adresu URL)
Wersja 2020-04-08 lub nowsza 4000 MiB Około 190,7 TiB (4000 MiB x 50 000 bloków) 5000 MiB (wersja zapoznawcza)
Wersje wcześniejsze niż 2020-04-08 100 MiB Około 4,75 TiB (100 MiB x 50 000 bloków) 256 MiB

Po przesłaniu zestawu bloków można utworzyć lub zaktualizować obiekt blob na serwerze z tego zestawu, wywołując operację Umieść listę zablokowanych. Każdy blok w zestawie jest identyfikowany przez identyfikator bloku, który jest unikatowy w obrębie tego obiektu blob. Zakres identyfikatorów bloków jest ograniczony do określonego obiektu blob, więc różne obiekty blob mogą mieć bloki o tych samych identyfikatorach.

Jeśli wywołasz obiekt blob, który jeszcze nie istnieje, zostanie utworzony nowy blokowy obiekt blob o długości Put Block From URL zawartości 0. Ten obiekt blob jest wyliczany przez List Blobs operację, jeśli include=uncommittedblobs określono opcję . Przekazany blok lub bloki nie zostaną zatwierdzone, dopóki nie wywołasz Put Block List wywołania dla nowego obiektu blob. Obiekt blob utworzony w ten sposób jest utrzymywany na serwerze przez tydzień. Jeśli w tym czasie nie dodano więcej bloków lub zatwierdzone bloki do obiektu blob, obiekt blob jest odśmiecany.

Blok, który został pomyślnie przekazany za pomocą operacji , nie staje się częścią obiektu blob, dopóki nie Put Block From URL zostanie on zatwierdzone za pomocą . Put Block List Zanim zostanie wywołana w celu zatwierdzenia nowego lub zaktualizowanego obiektu blob, wszystkie wywołania w celu uzyskania obiektu blob zwracają zawartość obiektu blob bez dołączania Put Block List niezatwierdzony blok.

Jeśli przekażemy blok o tym samym identyfikatorze bloku co inny blok, który nie został jeszcze zatwierdzone, ostatni przekazany blok z tym identyfikatorem zostanie zatwierdzone podczas następnej pomyślnej Put Block List operacji.

Po Put Block List wywołaniu wszystkie niezatwierdzone bloki określone na liście bloków są zatwierdzone jako część nowego obiektu blob. Wszystkie niezatwierdzone bloki, które nie zostały określone na liście bloków dla obiektu blob, zostaną odśmiecane i usunięte z Blob service. Wszelkie niezatwierdzone bloki również zostaną odśmiecane, jeśli w ciągu tygodnia od ostatniej pomyślnej operacji nie będzie żadnych pomyślnych wywołań do lub do tego samego Put Block From URL Put Block List obiektu Put Block From URL blob. Jeśli obiekt blob Put zostanie wywołany w obiekcie blob, wszelkie niezatwierdzone bloki zostaną odśmiecane.

Jeśli obiekt blob ma aktywną dzierżawę, klient musi określić prawidłowy identyfikator dzierżawy w żądaniu, aby zapisać blok w obiekcie blob. Jeśli klient nie określi identyfikatora dzierżawy lub określi nieprawidłowy identyfikator dzierżawy, Blob service zwraca kod stanu 412 (Niepowodzenie warunku wstępnego). Jeśli klient określa identyfikator dzierżawy, ale obiekt blob nie ma aktywnej dzierżawy, Blob service zwraca również kod stanu 412 (Niepowodzenie warunku wstępnego).

Dla danego obiektu blob wszystkie identyfikatory bloków muszą mieć taką samą długość. Jeśli blok zostanie przekazany z identyfikatorem bloku o innej długości niż identyfikatory bloków dla istniejących niezatwierdzony bloków, usługa zwraca kod odpowiedzi błędu 400 (Złe żądanie).

Wywołanie Put Block From URL nie aktualizuje czasu ostatniej modyfikacji istniejącego obiektu blob.

Wywołanie Put Block From URL metody dla stronicowego obiektu blob zwraca błąd.

Wywołanie Put Block From URL dla zarchiwizowany obiekt blob zwróci błąd i Hot / Cool obiekt blob nie zmienia warstwy obiektu blob.

Zobacz też