Dela via


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 senare

  • bytes=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