Angeben des Bereichsheaders für FileREST
Einige FileREST GET-Vorgänge unterstützen die Verwendung des HTTP-Standardheaders Range
. Viele HTTP-Clients, einschließlich der .NET-Clientbibliothek, beschränken die Größe des Range
Headers auf eine 32-Bit-Ganzzahl, sodass ihr Wert auf maximal 4 GiB beschränkt ist. Da Dateien größer als 4 GiB sein können, akzeptiert die Azure Files einen benutzerdefinierten Bereichsheader x-ms-range
für jeden Vorgang, der einen HTTP-Header Range
verwendet.
Einige HTTP-Clients, einschließlich der Microsoft Silverlight-Bibliothek, beschränken den Zugriff auf den Range
-Header vollständig. Der x-ms-range
-Header kann auch verwendet werden, um diese Einschränkungen zu umgehen.
Wenn der x-ms-range
-Header für eine Anforderung angegeben ist, verwendet der Dienst den von x-ms-range
angegebenen Bereich. Andernfalls wird der vom Range
-Header angegebene Bereich verwendet.
Formate für Bereichsheader
Azure Files akzeptiert zwei Bytebereiche für die Range
Header und x-ms-range
. Der Bytebereich muss einem der folgenden Formate für die Header entsprechen:
bytes=startByte-
bytes=startByte-endByte
Format 1: bytes=startByte-
Dieser Bereich gibt Bytes vom startByte
-Offset bis zum Ende der Datei zurück. Um beispielsweise einen Bereich anzugeben, der alle Bytes nach den ersten 256 Bytes einer Datei umfasst, können Sie einen der folgenden Header übergeben:
Range: bytes=255-
x-ms-range: bytes=255-
Der Content-Length
-Header in der Antwort entspricht der Anzahl der Bytes vom Offset bis zum Ende der Datei. Bei Verwendung des oben gezeigten Beispielbereichs für eine Datei mit einer Länge von 1024 Bytes hat Content-Length
den Wert 756.
Wenn der Offset gültig ist und nicht die Gesamtlänge der Datei überschreitet, gibt die Anforderung den Statuscode 206 (Teilinhalt) zurück. Wenn der Offset ungültig ist und die Gesamtlänge der Datei überschreitet, gibt die Anforderung den Statuscode 416 (Angeforderter Bereich kann nicht erfüllt werden) zurück.
Format 2: bytes=startByte-endByte
Dieser Bereich gibt Bytes vom startByte
-Offset bis endByte
zurück. Um beispielsweise einen Bereich anzugeben, der die ersten 512 Bytes einer Datei umfasst, übergeben Sie einen der folgenden Header:
Range: bytes=0-511
x-ms-range: bytes=0-511
Der Content-Length
-Header in der Antwort entspricht der Anzahl von Bytes zwischen den einzelnen Offsets. Wenn Sie den obigen Beispielbereich für eine Datei mit einer Länge von 1.024 Bytes verwenden, Content-Length
wäre dies 512.
Wenn der Offset gültig ist und die Gesamtlänge der Datei nicht überschreitet, gibt die Anforderung den status Code 206 (Teilinhalt) zurück. Wenn der Offset ungültig ist und die Gesamtlänge der Datei überschreitet, gibt die Anforderung den Statuscode 416 (Angeforderter Bereich kann nicht erfüllt werden) zurück.