Vložit blok z adresy URL
Operace Put Block From URL
vytvoří nový blok, který se potvrdí jako součást objektu blob, kde se obsah načte z adresy URL. Toto rozhraní API je k dispozici od verze 2018-03-28.
Žádost
Požadavek můžete vytvořit Put Block From URL
následujícím způsobem. Doporučujeme použít 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 |
Žádost o službu emulovaného úložiště
Když vytváříte požadavek na službu emulovaného úložiště, zadejte název hostitele emulátoru a port služby Blob Service jako 127.0.0.1:10000
a pak 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í emulátoru Azurite pro místní vývoj služby Azure Storage.
Parametry identifikátoru URI
Parametr | Popis |
---|---|
blockid |
Povinná hodnota. Platná hodnota řetězce Base64, která identifikuje blok. Před kódováním musí mít řetězec velikost menší než nebo rovna 64 bajtům. U zadaného objektu blob musí mít délka zadané hodnoty parametru blockid stejnou velikost pro každý blok.Poznámka: Řetězec Base64 musí být zakódovaný na adrese 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
Požadované a volitelné hlavičky požadavků jsou popsané v následující tabulce:
Hlavička požadavku | Popis |
---|---|
Authorization |
Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage. |
Date nebo x-ms-date |
Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků do služby Azure Storage. |
x-ms-version |
Povinné pro všechny autorizované žádosti. Určuje verzi operace, která se má použít pro tento požadavek. Další informace najdete v tématu Správa verzí pro služby Azure Storage. 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 0. Pokud délka není 0, operace selže se stavovým 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 kibibajtů (KiB), která určuje objekt blob. Hodnota by měla být zakódovaná v adrese URL, jak by se zobrazila v identifikátoru URI požadavku. Zdrojový objekt blob musí být veřejný nebo autorizovaný prostřednictvím sdíleného přístupového podpisu. Pokud je zdrojový objekt blob veřejný, nevyžaduje se k provedení operace žádná autorizace. Tady je několik příkladů adres URL zdrojových objektů: - 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 pro zdroj kopírování. Další informace najdete v tématu Autorizace požadavků do služby Azure Storage. Pro Microsoft Entra je podporováno pouze nosné schéma. Tato hlavička je podporovaná ve verzích 2020-10-02 a novějších. |
x-ms-source-range |
Nepovinný parametr. Nahraje jenom bajty objektu blob ve zdrojové adrese URL v zadaném rozsahu. Pokud tato hlavička není zadaná, celý obsah zdrojového 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 zadána, služba úložiště porovná hodnotu hash obsahu, který přišel z copy-source, s touto hodnotou hlavičky. Poznámka: Tato hodnota hash MD5 se s objektem blob neukládá. Pokud se tyto dvě hodnoty hash neshodnou, 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 zadána, služba úložiště porovná hodnotu hash obsahu, který přišel z copy-source, s touto hodnotou hlavičky. Poznámka: Tato hodnota hash CRC64 se s objektem blob neukládá. Pokud se tyto dvě hodnoty hash neshodnou, operace selže s kódem chyby 400 (Chybný požadavek). Pokud jsou k dispozici hlavičky i x-ms-source-content-md5 x-ms-source-content-crc64 , požadavek selže s chybou 400 (chybný požadavek).Tato hlavička je podporovaná ve verzích 2019-02-02 a novějších. |
x-ms-encryption-scope |
Nepovinný parametr. Označ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 a 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 s objektem 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 klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. Další informace najdete v tématu Monitorování Azure Blob Storage. |
Hlavičky požadavků (šifrovací klíče poskytnuté zákazníkem)
Od verze 2019-02-02 je možné v požadavku na š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 v kódování 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
Žádné
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ěď obsahuje stavový kód HTTP a sadu hlaviček odpovědi.
Stavový kód
Úspěšná operace vrátí stavový kód 201 (Vytvořeno).
Další informace o stavových kódech najdete v tématu Stavové kódy a kódy chyb.
Hlavičky odpovědi
Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.
Hlavička odpovědi | Description |
---|---|
Content-MD5 |
Vráceno, aby klient mohl zkontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítáná službou Blob Storage. Nemusí být nutně stejná jako hodnota zadaná v hlavičce požadavku. Ve verzích 2019-02-02 a novějších se tato hlavička vrátí pouze v případě, že požadavek tuto hlavičku obsahuje. |
x-ms-content-crc64 |
Pro verze 2019-02-02 a novější. Vráceno, aby klient mohl zkontrolovat integritu obsahu zprávy. Hodnota této hlavičky je vypočítáná službou Blob Storage. Nemusí být nutně stejná jako hodnota zadaná v hlavičce požadavku. Vrátí se, když x-ms-source-content-md5 v požadavku není hlavička. |
x-ms-request-id |
Jedinečně identifikuje požadavek, který byl proveden, a můžete ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API. |
x-ms-version |
Verze služby Blob Storage, která se použila ke spuštění požadavku. |
Date |
Hodnota data a času UTC vygenerovaná službou, která označuje čas, kdy byla odpověď inicializována. |
x-ms-request-server-encrypted: true/false |
Verze 2015-12-11 a novější. Hodnota této hlavičky je nastavena na true , pokud je obsah bloku úspěšně zašifrován pomocí zadaného algoritmu. V opačném případě je hodnota nastavena na false hodnotu . |
x-ms-encryption-key-sha256 |
Verze 2019-02-02 a novější. Vráceno, pokud žádost použila k šifrování klíč poskytnutý zákazníkem, aby klient mohl zajistit, že se obsah požadavku úspěšně zašifruje pomocí poskytnutého klíče. |
x-ms-encryption-scope |
Verze 2019-02-02 a novější. Vráceno, pokud požadavek používal obor šifrování, aby klient mohl zajistit, aby byl obsah požadavku úspěšně zašifrován pomocí oboru šifrování. |
x-ms-client-request-id |
Dá se použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud je v požadavku, a hodnota neobsahuje více než 1 024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude v odpovědi. |
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
Při volání jakékoli operace přístupu k datům ve službě Azure Storage se vyžaduje autorizace. Operaci můžete autorizovat, Put Block From URL
jak je popsáno níže.
Důležité
Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků do služby Azure Storage. Microsoft Entra ID ve srovnání s autorizací sdíleného klíče poskytuje vynikající zabezpečení a snadné použití.
Azure Storage podporuje autorizaci požadavků na data objektů blob pomocí Microsoft Entra ID. S Microsoft Entra ID můžete pomocí řízení přístupu na základě role v Azure (Azure RBAC) udělit oprávnění k objektu zabezpečení. Objektem zabezpečení může být uživatel, skupina, instanční objekt aplikace nebo spravovaná identita Azure. Objekt zabezpečení je ověřen Microsoft Entra ID, aby vrátil token OAuth 2.0. Token se pak dá použít k autorizaci požadavku na službu Blob Service.
Další informace o autorizaci pomocí Microsoft Entra ID najdete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.
Oprávnění
Níže jsou uvedené akce RBAC potřebné k volání operace Microsoft Entra uživatele, skupiny, spravované identity nebo instančního objektu Put Block From URL
a nejméně privilegované integrované role Azure RBAC, která zahrnuje tuto akci:
- Akce Azure RBAC:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- Nejméně privilegovaná předdefinovaná role:Přispěvatel dat v objektech blob služby Storage
Další informace o přiřazování rolí pomocí Azure RBAC najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.
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 pomocí Put Block From URL
je 100 mebibajtů (MiB). Pokud chcete nahrát větší bloky (až 4 000 MiB), přečtěte si téma Vložení bloku.
Ve verzi 2020-10-02 a novější se pro zdroj operace kopírování podporuje autorizace Microsoft Entra.
Objekt blob může mít kdykoli maximálně 100 000 nepotvrzených bloků. Pokud je toto maximum překročeno, vrátí služba stavový kód 409 (RequestEntityTooLargeBlockCountExceedsLimit).
Následující tabulka popisuje maximální povolené velikosti bloku a objektů blob podle verze služby:
Verze služby | Maximální velikost bloku (přes Put Block From URL ) |
Maximální velikost objektu blob (přes Put Block List ) |
Maximální velikost objektu blob prostřednictvím jedné operace zápisu (prostřednictvím Put Blob From URL ) |
---|---|---|---|
Verze 2020-04-08 a novější | 4 000 MiB | Přibližně 190,7 tebibajtů (TiB) (4 000 MiB × 50 000 bloků) | 5 000 MiB |
Verze starší než 8. 4. 2020 | 100 MiB | Přibližně 4,75 TiB (100 MiB × 50 000 bloků) | 256 MiB |
Po nahrání sady bloků můžete z této sady vytvořit nebo aktualizovat objekt blob na serveru voláním operace Put Block List (Seznam bloků ). Každý blok v sadě se identifikuje podle ID bloku, které je v rámci daného objektu blob jedinečné. ID bloků jsou vymezená na konkrétní objekt blob, takže různé objekty blob můžou mít bloky se stejnými ID.
Pokud zavoláte Put Block From URL
objekt blob, který ještě neexistuje, vytvoří se nový objekt blob bloku s délkou obsahu 0. Pokud je zadaná možnost, operace tento objekt blob vyčíslí List Blobs
include=uncommittedblobs
. Blok nebo bloky, které jste nahráli, nebudou potvrzeny, dokud nezavoláte Put Block List
nový objekt blob. Objekt blob vytvořený tímto způsobem se na serveru udržuje po dobu týdne. Pokud jste do objektu blob během této doby nepřidali další bloky nebo potvrzené bloky, bude objekt blob uvolněn z paměti.
Blok, který se úspěšně nahrál s Put Block From URL
operací, se nestane součástí objektu blob, dokud se nezadá pomocí Put Block List
. Před Put Block List
voláním metody se potvrdí nový nebo aktualizovaný objekt blob, všechna volání funkce Get 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, poslední nahraný blok s tímto ID se potvrdí při další úspěšné Put Block List
operaci.
Po Put Block List
zavolání se všechny nepotvrzené bloky zadané v seznamu bloků potvrdí jako součást nového objektu blob. Všechny nepotvrzené bloky, které nebyly zadány v seznamu bloků objektu blob, se z úložiště blob odeberou z paměti. Všechny nepotvrzené bloky jsou také uvolněny z paměti, pokud během týdne po poslední úspěšné Put Block From URL
operaci nedojde k Put Block From URL
žádným úspěšným voláním stejného objektu blob nebo Put Block List
do stejného objektu blob. Pokud se v objektu blob zavolá příkaz Put Blob , všechny nepotvrzené bloky se shromáždí z paměti.
Pokud má objekt blob aktivní zapůjčení, musí klient zadat platné ID zapůjčení v požadavku na zápis bloku do objektu blob. Pokud klient nezadá ID zapůjčení nebo zadá neplatné ID zapůjčení, vrátí Blob Storage 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í, služba Blob Storage vrátí také stavový kód 412 (Předběžná podmínka selhala).
U zadaného objektu blob musí mít všechna ID bloků stejnou délku. Pokud se blok nahraje s ID bloku s jinou délkou než ID bloku pro všechny existující nepotvrzené bloky, vrátí služba kód odpovědi na chybu 400 (Chybný požadavek).
Volání Put Block From URL
neaktualizuje čas poslední změny existujícího objektu blob.
Volání Put Block From URL
objektu blob stránky vrátí chybu.
Volání Put Block From URL
v archivním objektu blob vrátí chybu a jeho volání v objektu hot
blob nebo cool
nezmění úroveň objektu blob.
Fakturace
Požadavky na ceny můžou pocházet od klientů, kteří používají rozhraní API služby Blob Storage, a to buď přímo prostřednictvím rozhraní REST API služby Blob Storage, nebo z klientské knihovny služby Azure Storage. Za tyto žádosti se účtují poplatky za každou transakci. Typ transakce ovlivňuje způsob účtování za účet. Například transakce čtení se načítají do jiné kategorie fakturace než transakce zápisu. Následující tabulka uvádí kategorii fakturace pro Put Block From URL
žádosti založené na typu účtu úložiště:
Operace | Typ účtu úložiště | Kategorie fakturace |
---|---|---|
Put Block From URL (cílový účet1) | Objekt blob bloku úrovně Premium Standard pro obecné účely v2 Standard pro obecné účely v1 |
Operace zápisu |
Put Block From URL (zdrojový účet2) | Objekt blob bloku úrovně Premium Standard pro obecné účely v2 Standard pro obecné účely v1 |
Operace čtení |
1.Cílový účet se účtuje za jednu transakci pro zahájení zápisu.
2.Zdrojový účet pro každý požadavek na čtení zdrojového objektu způsobuje jednu transakci.
Kromě toho platí, že pokud se zdrojový a cílový účet nacházejí v různých oblastech (například USA – sever a USA – jih), šířka pásma použitá k přenosu požadavku se zdrojovému účtu úložiště účtuje jako výchozí přenos dat. Výchozí přenos dat mezi účty ve stejné oblasti je zdarma.
Informace o cenách pro zadané kategorie fakturace najdete v tématu Azure Blob Storage Ceny.