De bereikheader opgeven voor blobservicebewerkingen
Verschillende GET-bewerkingen voor blobservices ondersteunen het gebruik van de standaard HTTP-header Range
. Veel HTTP-clients, waaronder de .NET-clientbibliotheek, beperken de grootte van de Range
header tot een geheel getal van 32 bits, waardoor de waarde ervan is beperkt tot een maximum van 4 GiB. Omdat zowel blok-blobs als pagina-blobs groter kunnen zijn dan 4 GiB, accepteert de Blob-service een aangepaste bereikheader x-ms-range
voor elke bewerking waarvoor een HTTP-header Range
wordt gebruikt.
Sommige HTTP-clients, waaronder de Microsoft Silverlight-bibliotheek, beperken de toegang tot de Range
header helemaal. De x-ms-range
header kan ook worden gebruikt om deze beperkingen te omzeilen.
Als de x-ms-range
header is opgegeven voor een aanvraag, gebruikt de service het bereik dat is opgegeven door x-ms-range
; anders wordt het bereik gebruikt dat is opgegeven door de Range
header.
Notitie
De Azure Storage-clientbibliotheek verwerkt automatisch het instellen van de juiste bereikheader voor de aanvraag wanneer u de Range
eigenschap van het PutPageProperties
object instelt.
Indelingen voor bereikheaders
De Blob-service accepteert twee bytebereiken voor de Range
headers en x-ms-range
. Het bytebereik moet voldoen aan een van de volgende indelingen voor de headers:
bytes=startByte-
voor aanvragen met versie 2011-08-18 of hogerbytes=startByte-endByte
voor aanvragen met alle versies (2009-04-14 tot en met de nieuwste versie)
Notatie 1: bytes=startByte-
De eerste indeling, bytes=startByte-
, is alleen beschikbaar voor aanvragen met versie 2011-08-18 of nieuwer, of de opslagemulatorservice in SDK 1.6 of hoger. Dit bereik retourneert bytes van de offset startByte
tot het einde van de blob. Als u bijvoorbeeld een bereik wilt opgeven dat alle bytes na de eerste 256 bytes van een blob omvat, kunt u een van de volgende headers doorgeven:
Range: bytes=255-
x-ms-range: bytes=255-
De Content-Length
header in het antwoord is gelijk aan het aantal bytes vanaf de offset tot het einde van de blob. Als u het bovenstaande voorbeeldbereik gebruikt voor een blob met een lengte van 1024 bytes, Content-Length
is dat 756.
Als de offset geldig is en de totale lengte van de blob niet overschrijdt, retourneert de aanvraag de statuscode 206 (Gedeeltelijke inhoud). Als de offset ongeldig is en de totale lengte van de blob overschrijdt, retourneert de aanvraag statuscode 416 (Aangevraagd bereik niet bevredigend).
Indeling 2: bytes=startByte-endByte
De tweede indeling, bytes=startByte-endByte
, is beschikbaar voor aanvragen met alle versies (2009-04-14 tot en met de nieuwste versie) en voor alle versies van de opslagemulatorservice. Dit bereik retourneert bytes van de offset startByte
tot en met endByte
. Als u bijvoorbeeld een bereik wilt opgeven dat de eerste 512 bytes van een blob omvat, geeft u een van de volgende headers door:
Range: bytes=0-511
x-ms-range: bytes=0-511
De Content-Length
header in het antwoord is gelijk aan het aantal bytes tussen elke offset. Als u het bovenstaande voorbeeldbereik gebruikt voor een blob met een lengte van 1024 bytes, Content-Length
is dat 512.
Als de offset geldig is en de totale lengte van de blob niet overschrijdt, retourneert de aanvraag de statuscode 206 (Gedeeltelijke inhoud). Als de offset ongeldig is en de totale lengte van de blob overschrijdt, retourneert de aanvraag statuscode 416 (Aangevraagd bereik niet bevredigend).
Zie ook
Concepten van blob-service
Versiebeheer voor Azure Storage Services