Put Block From URL
Operace vytvoří nový blok, který se má potvrzen jako součást objektu blob, kde Put Block From URL se obsah přečte z adresy URL. Toto rozhraní API je dostupné od verze 2018-03-28 .
Žádost
Požadavek Put Block From URL lze zkonstruovat následujícím způsobem. Doporučuje se protokol HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště:
| Identifikátor URI požadavku metody PUT | Verze PROTOKOLU HTTP |
|---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id |
HTTP/1.1 |
Emulovaný identifikátor URI Storage služby
Při vytváření požadavku na emulovanou službu úložiště zadejte název hostitele emulátoru a Blob service jako a za ním 127.0.0.1:10000 název emulovaného účtu úložiště:
| Identifikátor URI požadavku metody PUT | Verze PROTOKOLU HTTP |
|---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id |
HTTP/1.1 |
Další informace najdete v tématu Použití Azure Storage Emulator pro vývoj a testování.
Parametry identifikátoru URI
| Parametr | Popis |
|---|---|
blockid |
Povinná hodnota. Platná řetězcová hodnota Base64, která identifikuje blok. Před kódováním musí být řetězec menší nebo roven 64 bajtům. Pro daný objekt blob musí být délka hodnoty zadané pro parametr stejná pro blockid každý blok.Všimněte si, že řetězec Base64 musí být zakódovaný do adresy URL. |
timeout |
Nepovinný parametr. Parametr timeout je vyjádřen v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Service. |
Hlavičky požadavku
Následující tabulka popisuje povinné a volitelné hlavičky požadavku.
| Hlavička požadavku | Popis |
|---|---|
Authorization |
Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v Azure Storage žádostí pro přístup k serveru. |
Date nebo x-ms-date |
Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků na Azure Storage. |
x-ms-version |
Vyžaduje se pro všechny autorizované požadavky. Určuje verzi operace, která se má použít pro tento požadavek. Další informace najdete v tématu o verzích pro Azure Storage Services. Pro Put Block From URL musí být verze 2018-03-28 nebo novější. |
Content-Length |
Povinná hodnota. Určuje počet bajtů přenášených v textu požadavku. Hodnota této hlavičky musí být nastavená na nulu. Pokud délka není nula, operace selže se stavový kódem 400 (Chybný požadavek). |
x-ms-copy-source:name |
Povinná hodnota. Určuje adresu URL zdrojového objektu blob. Hodnota může být adresa URL o délce až 2 kiB, která určuje objekt blob. Hodnota by měla být kódovaná pomocí adresy URL, jak by se měla zobrazit v identifikátoru URI požadavku. Zdrojový objekt blob musí být veřejný nebo musí být autorizovaný prostřednictvím sdíleného přístupového podpisu. Pokud je zdrojový objekt blob veřejný, k provedení operace se nevyžaduje žádná autorizace. Tady je několik příkladů adres URL zdrojového objektu: - 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> |
Nepovinný parametr. Určuje schéma autorizace a podpis zdroje kopírování. Další informace najdete v tématu Autorizace požadavků na Azure Storage. Pro uživatele se podporuje pouze Azure Active Directory. Tato hlavička je podporovaná ve verzích 2020-10-02 a novějších. |
x-ms-source-range |
Nepovinný parametr. Nahraje pouze bajty objektu blob ve zdrojové adrese URL v zadaném rozsahu. Pokud tento parametr nezadáte, celý zdrojový obsah objektu blob se nahraje jako jeden blok. Další informace najdete v tématu Určení hlavičky rozsahu pro operace služby Blob Service. |
x-ms-source-content-md5 |
Nepovinný parametr. Hodnota hash MD5 obsahu bloku z identifikátoru URI. Tato hodnota hash se používá k ověření integrity bloku během přenosu dat z identifikátoru URI. Když je tato hlavička zadaná, služba úložiště porovná hodnotu hash obsahu, který přišel ze zdroje kopírování, s touto hodnotou hlavičky. Všimněte si, že tato hodnota hash md5 není uložená s objektem blob. Pokud se tyto dvě hash neshodují, operace selže s kódem chyby 400 (Chybný požadavek). |
x-ms-source-content-crc64 |
Nepovinný parametr. Hodnota hash CRC64 obsahu bloku z identifikátoru URI. Tato hodnota hash se používá k ověření integrity bloku během přenosu dat z identifikátoru URI. Když je tato hlavička zadaná, služba úložiště porovná hodnotu hash obsahu, který přišel ze zdroje kopírování, s touto hodnotou hlavičky. Všimněte si, že tato hodnota hash CRC64 není uložená s objektem blob. Pokud se tyto dvě hash neshodují, operace selže s kódem chyby 400 (Chybný požadavek). Pokud jsou k dispozici hlavičky i , požadavek selže s chybou x-ms-source-content-md5 x-ms-source-content-crc64 400 (Chybný požadavek).Tato hlavička je podporovaná ve verzích 2019-02-02 nebo novějších. |
x-ms-encryption-scope |
Nepovinný parametr. Určuje obor šifrování, který se má použít k šifrování zdrojového obsahu. Tato hlavička je podporovaná ve verzích 2019-02-02 nebo novějších. |
x-ms-lease-id:<ID> |
Vyžaduje se, pokud má objekt blob aktivní zapůjčení. Pokud chcete tuto operaci provést u objektu blob s aktivním zapůjčením, zadejte platné ID zapůjčení pro tuto hlavičku. |
x-ms-client-request-id |
Nepovinný parametr. Poskytuje neprůhlednou hodnotu vygenerovanou klientem s limitem 1 kiB znaků, který se zaznamená do analytických protokolů, když je povolené protokolování analýzy úložiště. Použití této hlavičky se důrazně doporučuje pro korelaci aktivit na straně klienta s požadavky přijatými serverem. Další informace najdete v tématu Protokolování Storage Analytics a Protokolování Azure: Použití protokolů ke sledování Storage požadavků. |
Hlavičky požadavku (šifrovací klíče poskytnuté zákazníkem)
Počínaje verzí 2019-02-02 je možné v požadavku na zašifrování objektu blob pomocí klíče poskytnutého zákazníkem zadat následující hlavičky. Šifrování pomocí klíče poskytnutého zákazníkem (a odpovídající sady hlaviček) je volitelné.
| Hlavička požadavku | Popis |
|---|---|
x-ms-encryption-key |
Povinná hodnota. Šifrovací klíč AES-256 s kódováním Base64. |
x-ms-encryption-key-sha256 |
Povinná hodnota. Hodnota hash SHA256 šifrovacího klíče s kódováním Base64. |
x-ms-encryption-algorithm: AES256 |
Povinná hodnota. Určuje algoritmus, který se má použít pro šifrování. Hodnota této hlavičky musí být AES256 . |
Text požadavku
Tělo žádosti není k dispozici.
Ukázkový požadavek
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
Odpověď
Odpověď zahrnuje stavový kód HTTP a sadu hlaviček odpovědí.
Stavový kód
Úspěšná operace vrátí stavový kód 201 (vytvořeno).
Informace o stavových kódech naleznete v tématu stav a chybové kódy.
Hlavičky odpovědi
Odpověď pro tuto operaci zahrnuje následující hlavičky. Odpověď může obsahovat také další standardní hlavičky protokolu HTTP. Všechna standardní záhlaví jsou v souladu se specifikací protokolu HTTP/1.1.
| Hlavička odpovědi | Popis |
|---|---|
Content-MD5 |
Tato hlavička se vrátí, aby klient mohl kontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítána Blob service; nemusí nutně odpovídat hodnotě zadané v hlavičkách požadavku. Pro verze 2019-02-02 nebo novější se tato hlavička vrátí pouze v případě, že žádost obsahuje tuto hlavičku. |
x-ms-content-crc64 |
Pro verze 2019-02-02 nebo novější se tato hlavička vrátí, aby klient mohl kontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítána Blob service; nemusí nutně odpovídat hodnotě zadané v hlavičkách požadavku. Tato hlavička se vrátí, když se x-ms-source-content-md5 v požadavku nenachází hlavička. |
x-ms-request-id |
Tato hlavička jednoznačně identifikuje požadavek, který se provedl, a dá se použít k řešení potíží s žádostí. Další informace najdete v tématu řešení potíží s operacemi rozhraní API. |
x-ms-version |
Určuje verzi Blob service, která se používá ke spuštění žádosti. |
Date |
Hodnota data a času UTC vygenerovaná službou, která indikuje čas, kdy byla odpověď iniciována. |
x-ms-request-server-encrypted: true/false |
Verze 2015-12-11 nebo novější. Hodnota tohoto záhlaví je nastavena na hodnotu true , pokud je obsah bloku úspěšně šifrován pomocí zadaného algoritmu a false jinak. |
x-ms-encryption-key-sha256 |
Verze 2019-02-02 nebo novější. Tato hlavička se vrátí, pokud požadavek použil pro šifrování klíč poskytovaný zákazníkem, takže klient může zajistit, aby se obsah žádosti úspěšně šifroval pomocí poskytnutého klíče. |
x-ms-encryption-scope |
Verze 2019-02-02 nebo novější. Tato hlavička se vrátí, pokud požadavek používá obor šifrování, takže klient může zajistit, aby se obsah žádosti úspěšně šifroval pomocí oboru šifrování. |
x-ms-client-request-id |
Tato hlavička se dá použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota tohoto záhlaví je rovna hodnotě x-ms-client-request-id záhlaví, pokud se nachází v požadavku a hodnota je nejvýše 1024 viditelných znaků ASCII. Pokud x-ms-client-request-id Hlavička v požadavku není, tato hlavička nebude v odpovědi přítomna. |
Ukázková odpověď
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
Autorizace
Tuto operaci může volat vlastník účtu a kdokoli se sdíleným přístupovým podpisem, který má oprávnění k zápisu do tohoto objektu BLOB nebo kontejneru.
Poznámky
Put Block From URL nahraje blok pro budoucí zahrnutí do objektu blob bloku. Objekt blob bloku může obsahovat maximálně 50 000 bloků. Každý blok může mít jinou velikost. Maximální velikost bloku nahraného pro blok Put Block From URL je 100 MIB. Chcete-li nahrát větší bloky (až 4000 MiB), viz blok vložení.
ve verzi 2020-10-02 a novější je pro zdroj operace kopírování podporovaná Azure Active Directory autorizace.
Objekt BLOB může mít v daném okamžiku maximálně 100 000 nepotvrzených bloků. V případě překročení tohoto maxima vrátí služba stavový kód 409 (RequestEntityTooLargeBlockCountExceedsLimit).
Následující tabulka popisuje maximální velikost bloku a objektů BLOB povolených ve verzi služby.
| Verze služby | Maximální velikost bloku (přes blok vložení z adresy URL) | Maximální velikost objektu BLOB (přes seznam blokovaných bloků) | Maximální velikost objektu BLOB přes jednu operaci zápisu (prostřednictvím objektu BLOB Put z adresy URL) |
|---|---|---|---|
| Verze 2020-04-08 a novější | 4000 MiB | Přibližně 190,7 TiB (4000 MiB X 50 000 bloků) | 5000 MiB (Preview) |
| Verze starší než 2020-04-08 | 100 MiB | Přibližně 4,75 TiB (100 MiB X 50 000 bloků) | 256 MiB |
Po nahrání sady bloků můžete vytvořit nebo aktualizovat objekt blob na serveru z této sady tím, že zavoláte operaci seznamu blokování umístění . Každý blok v sadě je identifikován IDENTIFIKÁTORem bloku, který je v rámci tohoto objektu BLOB jedinečný. ID bloku mají rozsah na konkrétní objekt blob, takže různé objekty blob můžou mít bloky se stejnými identifikátory.
Pokud voláte Put Block From URL na objekt blob, který ještě neexistuje, vytvoří se nový objekt blob bloku s délkou obsahu 0. Tento objekt BLOB je vyhodnocen List Blobs operací, pokud include=uncommittedblobs je zadána možnost. Blok nebo bloky, které jste odeslali, nejsou potvrzeny, dokud nebudete volat Put Block List na nový objekt BLOB. Objekt BLOB vytvořený tímto způsobem je udržován na serveru po dobu týdne; Pokud jste do objektu BLOB během tohoto časového období nepřidali další bloky nebo potvrzené bloky, je objekt BLOB shromážděn z paměti.
Blok, který byl úspěšně nahrán s operací, se Put Block From URL nestane součástí objektu blob, dokud není potvrzen Put Block List . Předtím Put Block List , než se zavolá k potvrzení nového nebo aktualizovaného objektu blob, všechna volání metody Get objektu BLOB vrátí obsah objektu BLOB bez zahrnutí nepotvrzeného bloku.
Pokud nahrajete blok, který má stejné ID bloku jako jiný blok, který ještě nebyl potvrzen, bude při další úspěšné operaci potvrzen poslední nahraný blok s tímto ID Put Block List .
Po Put Block List volání se všechny nepotvrzené bloky zadané v seznamu blokování potvrdí jako součást nového objektu BLOB. Všechny nepotvrzené bloky, které nebyly zadány v seznamu blokovaných objektů blob, budou uvolněny z paměti a odebrány z Blob service. Všechny nepotvrzené bloky budou také shromažďovány do paměti, pokud neexistují žádná úspěšná volání Put Block From URL nebo Put Block List na stejný objekt BLOB v týdnu po poslední úspěšné Put Block From URL operaci. Pokud je v objektu BLOB volána metoda Put BLOB , všechny nepotvrzené bloky budou uvolněny z paměti.
Pokud má objekt BLOB aktivní zapůjčení, musí klient v žádosti zadat platné ID zapůjčení, aby bylo možné zapsat blok do objektu BLOB. Pokud klient nezadá ID zapůjčení, nebo zadá neplatné ID zapůjčení, Blob service vrátí stavový kód 412 (Předběžná podmínka se nezdařila). Pokud klient zadá ID zapůjčení, ale objekt BLOB nemá aktivní zapůjčení, Blob service vrátí taky stavový kód 412 (Předběžná podmínka se nezdařila).
Pro daný objekt BLOB musí mít všechna ID bloku stejnou délku. Pokud je nahrán blok s ID bloku jiné délky než ID bloku pro všechny existující nepotvrzené bloky, služba vrátí kód chybové odpovědi 400 (chybný požadavek).
Volání Put Block From URL neaktualizuje čas poslední změny stávajícího objektu BLOB.
Volání Put Block From URL objektu blob stránky vrátí chybu.
Volání Put Block From URL u archivovaného objektu BLOB vrátí chybu a u Hot / Cool objektu BLOB se nemění úroveň objektu BLOB.