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