Ange intervallrubriken för Blob Service-åtgärder
Flera GET-åtgärder för Blob-tjänsten stöder användningen av http-standardrubriken Range
. Många HTTP-klienter, inklusive .NET-klientbiblioteket, begränsar storleken på Range
huvudet till ett 32-bitars heltal, och därför är dess värde begränsat till högst 4 GiB. Eftersom både blockblobar och sidblobar kan vara större än 4 GiB i storlek accepterar Blob-tjänsten ett anpassat intervallhuvud x-ms-range
för alla åtgärder som tar ett HTTP-huvud Range
.
Vissa HTTP-klienter, inklusive Microsoft Silverlight-biblioteket, begränsar åtkomsten Range
till rubriken helt och hållet. Huvudet x-ms-range
kan också användas för att kringgå dessa begränsningar.
x-ms-range
Om rubriken anges för en begäran använder tjänsten det intervall som anges av x-ms-range
. Annars används det intervall som anges av Range
rubriken.
Anteckning
Azure Storage-klientbiblioteket hanterar automatiskt inställningen av lämpligt intervallhuvud för begäran när du anger Range
objektets PutPageProperties
egenskap.
Intervallrubrikformat
Blob-tjänsten accepterar två byteintervall för sidhuvudena Range
och x-ms-range
. Byteintervallet måste följa något av följande format för rubrikerna:
bytes=startByte-
för begäranden med version 2011-08-18 eller senarebytes=startByte-endByte
för begäranden som använder alla versioner (2009-04-14 via den senaste versionen)
Format 1: bytes=startByte-
Det första formatet, bytes=startByte-
, är endast tillgängligt för begäranden som använder version 2011-08-18 eller senare, eller lagringsemulatortjänsten i SDK 1.6 eller senare. Det här intervallet returnerar byte från förskjutningen startByte
till slutet av blobben. Om du till exempel vill ange ett intervall som omfattar alla byte efter de första 256 byteen av en blob, kan du skicka in någon av följande rubriker:
Range: bytes=255-
x-ms-range: bytes=255-
Rubriken Content-Length
i svaret är lika med antalet byte från förskjutningen till slutet av blobben. Om du använder exempelintervallet ovan för en blob med en längd Content-Length
på 1 024 byte är det 756.
Om förskjutningen är giltig och inte överskrider blobens totala längd returnerar begäran statuskoden 206 (partiellt innehåll). Om förskjutningen är ogiltig och överskrider blobens totala längd returnerar begäran statuskoden 416 (Begärt intervall kan inte uppfyllas).
Format 2: bytes=startByte-endByte
Det andra formatet, bytes=startByte-endByte
, är tillgängligt för begäranden som använder alla versioner (2009-04-14 via den senaste versionen) och för alla versioner av lagringsemulatortjänsten. Det här intervallet returnerar byte från förskjutningen startByte
till endByte
. Om du till exempel vill ange ett intervall som omfattar de första 512 byteen av en blob skickar du någon av följande rubriker:
Range: bytes=0-511
x-ms-range: bytes=0-511
Rubriken Content-Length
i svaret är lika med antalet byte mellan varje förskjutning. Om du använder exempelintervallet ovan för en blob på 1 024 byte är Content-Length
det 512.
Om förskjutningen är giltig och inte överskrider blobens totala längd returnerar begäran statuskoden 206 (partiellt innehåll). Om förskjutningen är ogiltig och överskrider blobens totala längd returnerar begäran statuskoden 416 (Begärt intervall kan inte uppfyllas).
Se även
Blob Service-begrepp
Versionshantering för Azure Storage-tjänsterna