A blobszolgáltatás-műveletek tartományfejlécének megadása

Számos Blob service GET-művelet támogatja a szabványos HTTP-fejléc Range használatát. Számos HTTP-ügyfél, beleértve a .NET-ügyfélkódtárat is, a Range fejléc méretét 32 bites egész számra korlátozza, így az értéke legfeljebb 4 GiB lehet. Mivel a blokkblobok és az oldalblobok mérete is 4 GiB-nél nagyobb lehet, a Blob szolgáltatás elfogad egy egyéni tartományfejlécet x-ms-range minden olyan művelethez, amely HTTP-fejlécet Range használ.

Egyes HTTP-ügyfelek, beleértve a Microsoft Silverlight-kódtárat is, teljes mértékben korlátozzák a Range fejléchez való hozzáférést. A x-ms-range fejléc ezen korlátozások megkerülésére is használható.

Ha a x-ms-range fejléc egy kérelemben van megadva, akkor a szolgáltatás a által megadott x-ms-rangetartományt használja; ellenkező esetben a Range fejléc által megadott tartomány lesz használva.

Megjegyzés

Az Azure Storage ügyfélkódtár automatikusan kezeli a megfelelő tartományfejléc beállítását a kérelemben, amikor beállítja az RangePutPageProperties objektum tulajdonságát.

Tartományfejléc formátumai

A Blob szolgáltatás két bájttartományt fogad el a és x-ms-range a Range fejléchez. A bájttartománynak meg kell felelnie a fejlécek alábbi formátumainak:

  • bytes=startByte- a 2011-08-18-es vagy újabb verziót használó kérések esetén

  • bytes=startByte-endByte az összes verziót használó kérések esetén (2009-04-14 a legújabb verzióig)

1. formátum: bájt=startByte-

Az első formátum ( bytes=startByte-) csak a 2011-08-18-es vagy újabb verziót használó kérésekhez, illetve az SDK 1.6-os vagy újabb verziójában elérhető storage emulator szolgáltatáshoz érhető el. Ez a tartomány bájtokat ad vissza az eltolástól startByte a blob végéig. Ha például egy blob első 256 bájtja után az összes bájtot magában foglaló tartományt szeretné megadni, az alábbi fejlécek egyikét is átadhatja:

  • Range: bytes=255-

  • x-ms-range: bytes=255-

A Content-Length válasz fejléce megegyezik az eltolástól a blob végéig terjedő bájtok számával. Ha a fenti példatartományt 1024 bájt hosszú blobhoz használná, Content-Length az 756 lenne.

Ha az eltolás érvényes, és nem haladja meg a blob teljes hosszát, a kérés egy 206-os állapotkódot (részleges tartalom) ad vissza. Ha az eltolás érvénytelen, és meghaladja a blob teljes hosszát, a kérés a 416-os állapotkódot adja vissza (a kért tartomány nem alkalmas).

2. formátum: bytes=startByte-endByte

A második formátum( bytes=startByte-endByte) az összes verziót (2009-04-14- a legújabb verziót) és a storage emulator szolgáltatás összes verzióját használó kérésekhez érhető el. Ez a tartomány bájtokat ad vissza az eltolástól startByte a következőn keresztül: endByte. Ha például egy blob első 512 bájtját tartalmazó tartományt szeretne megadni, adja meg az alábbi fejlécek egyikét:

  • Range: bytes=0-511

  • x-ms-range: bytes=0-511

A Content-Length válasz fejléce megegyezik az egyes eltolások közötti bájtok számával. Ha a fenti példatartományt 1024 bájt hosszúságú blobhoz használja, Content-Length az 512 lenne.

Ha az eltolás érvényes, és nem haladja meg a blob teljes hosszát, a kérés egy 206-os állapotkódot (részleges tartalom) ad vissza. Ha az eltolás érvénytelen, és meghaladja a blob teljes hosszát, a kérés a 416-os állapotkódot adja vissza (a kért tartomány nem alkalmas).

Lásd még:

A Blob szolgáltatással kapcsolatos fogalmak
Az Azure Storage-szolgáltatások verziókezelése