Zadání hlavičky rozsahu pro operace služby Blob Service
Několik operací GET služby Blob Service podporuje použití standardní hlavičky HTTP Range
. Mnoho klientů HTTP, včetně klientské knihovny .NET, omezuje velikost Range
hlavičky na 32bitové celé číslo, a proto je její hodnota omezená na maximálně 4 GiB. Vzhledem k tomu, že objekty blob bloku i objekty blob stránky můžou být větší než 4 GiB, služba Blob Service přijímá vlastní hlavičku x-ms-range
rozsahu pro každou operaci, která přijímá hlavičku HTTP Range
.
Někteří klienti HTTP, včetně knihovny Microsoft Silverlight, omezují přístup k Range
hlavičce úplně. Hlavičku x-ms-range
lze použít také k obcházení těchto omezení.
Pokud je hlavička x-ms-range
zadána v požadavku, služba použije rozsah určený v x-ms-range
. V opačném případě se použije rozsah určený hlavičkou Range
.
Poznámka
Klientská knihovna Azure Storage automaticky zpracuje nastavení příslušné hlavičky rozsahu v požadavku, když nastavíte Range
vlastnost objektu PutPageProperties
.
Formáty záhlaví rozsahu
Služba Blob Service přijímá pro hlavičky Range
a x-ms-range
dva rozsahy bajtů. Rozsah bajtů musí splňovat některý z následujících formátů hlaviček:
bytes=startByte-
pro požadavky používající verzi 2011-08-18 nebo novějšíbytes=startByte-endByte
pro požadavky používající všechny verze (2009-04-14 až nejnovější verze)
Formát 1: bytes=startByte-
První formát bytes=startByte-
, je k dispozici pouze pro požadavky používající verzi 2011-08-18 nebo novější nebo službu emulátoru úložiště v sadě SDK 1.6 nebo novější. Tento rozsah vrátí bajty od posunu startByte
do konce objektu blob. Pokud například chcete zadat rozsah zahrnující všechny bajty za prvními 256 bajty objektu blob, můžete předat některou z následujících hlaviček:
Range: bytes=255-
x-ms-range: bytes=255-
Hlavička Content-Length
v odpovědi se rovná počtu bajtů od posunu do konce objektu blob. Výše uvedený příklad rozsahu pro objekt blob o délce Content-Length
1 024 bajtů by byl 756.
Pokud je posun platný a nepřekračuje celkovou délku objektu blob, požadavek vrátí stavový kód 206 (částečný obsah). Pokud je posun neplatný a překračuje celkovou délku objektu blob, požadavek vrátí stavový kód 416 (Požadovaný rozsah není možné zmírnit).
Formát 2: bytes=startByte-endByte
Druhý formát bytes=startByte-endByte
, je k dispozici pro žádosti používající všechny verze (2009-04-14 až nejnovější verze) a pro všechny verze služby emulátoru úložiště. Tento rozsah vrátí bajty z posunu startByte
do endByte
. Pokud byste například chtěli zadat rozsah zahrnující prvních 512 bajtů objektu blob, předali byste některou z následujících hlaviček:
Range: bytes=0-511
x-ms-range: bytes=0-511
Hlavička Content-Length
v odpovědi se rovná počtu bajtů mezi jednotlivými posuny. Použití výše uvedeného příkladu pro objekt blob o délce Content-Length
1 024 bajtů by bylo 512.
Pokud je posun platný a nepřekračuje celkovou délku objektu blob, požadavek vrátí stavový kód 206 (částečný obsah). Pokud je posun neplatný a překračuje celkovou délku objektu blob, požadavek vrátí stavový kód 416 (Požadovaný rozsah není možné zmírnit).
Viz také
Koncepty služby Blob Service
Správa verzí pro služby Azure Storage