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-range
tartomá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 Range
PutPageProperties
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énbytes=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