De bereikheader voor FileREST opgeven
Sommige FileREST GET-bewerkingen 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 bestanden groter kunnen zijn dan 4 GiB, accepteert de Azure Files 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.
Indelingen voor bereikheaders
Azure Files accepteert twee bytebereiken voor de Range
kopteksten enx-ms-range
. Het bytebereik moet voldoen aan een van de volgende indelingen voor de headers:
bytes=startByte-
bytes=startByte-endByte
Notatie 1: bytes=startByte-
Dit bereik retourneert bytes van de offset startByte
tot het einde van het bestand. Als u bijvoorbeeld een bereik wilt opgeven dat alle bytes na de eerste 256 bytes van een bestand 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 het bestand. Als u het bovenstaande voorbeeldbereik gebruikt voor een bestand met een lengte van 1024 bytes, Content-Length
is dat 756.
Als de offset geldig is en de totale lengte van het bestand niet overschrijdt, retourneert de aanvraag de statuscode 206 (Gedeeltelijke inhoud). Als de offset ongeldig is en de totale lengte van het bestand overschrijdt, retourneert de aanvraag statuscode 416 (Aangevraagd bereik niet satisfieerbaar).
Indeling 2: bytes=startByte-endByte
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 bestand 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 bestand met een lengte van 1024 bytes, Content-Length
is dat 512.
Als de offset geldig is en de totale lengte van het bestand niet overschrijdt, retourneert de aanvraag de statuscode 206 (Gedeeltelijke inhoud). Als de offset ongeldig is en de totale lengte van het bestand overschrijdt, retourneert de aanvraag statuscode 416 (Aangevraagd bereik niet satisfieerbaar).