Specifica dell'intestazione di intervallo per FileREST
Alcune operazioni GET di FileREST supportano l'uso dell'intestazione HTTP Range
standard. Molti client HTTP, tra cui la libreria client .NET, limitano le dimensioni dell'intestazione Range
a un intero a 32 bit e quindi il relativo valore è limitato a un massimo di 4 GiB. Poiché i file possono essere maggiori di 4 GiB di dimensioni, il File di Azure accetta un'intestazione di intervallo personalizzata per qualsiasi operazione che accetta un'intestazione x-ms-range
HTTPRange
.
Alcuni client HTTP, inclusa la libreria Microsoft Silverlight, limitano l'accesso all'intestazione Range
. L'intestazione x-ms-range
può essere utilizzata per ovviare a queste limitazioni.
Se l'intestazione x-ms-range
viene specificata in una richiesta, il servizio utilizza l'intervallo specificato da x-ms-range
; in caso contrario, viene utilizzato l'intervallo specificato dall'intestazione Range
.
Formati di intestazione intervallo
File di Azure accetta due intervalli di byte per le Range
intestazioni ex-ms-range
. L'intervallo di byte devono essere conforme a uno dei formati seguenti per le intestazioni:
bytes=startByte-
bytes=startByte-endByte
Formato 1: bytes=startByte-
Questo intervallo restituisce i byte dall'offset startByte
fino alla fine del file. Ad esempio, per specificare un intervallo comprendente tutti i byte dopo i primi 256 byte di un file, è possibile passare una delle intestazioni seguenti:
Range: bytes=255-
x-ms-range: bytes=255-
L'intestazione Content-Length
nella risposta è uguale al numero di byte dall'offset fino alla fine del file. Usando l'intervallo di esempio precedente per un file di 1.024 byte di lunghezza, Content-Length
è pari a 756.
Se l'offset è valido e non supera la lunghezza totale del file, la richiesta restituisce un codice di stato 206 (Contenuto parziale). Se l'offset non è valido e supera la lunghezza totale del file, la richiesta restituisce un codice di stato 416 (Impossibile attenersi all'intervallo richiesto).
Formato 2: bytes=startByte-endByte
Questo intervallo restituisce i byte dall'offset startByte
fino a endByte
. Ad esempio, per specificare un intervallo comprendente i primi 512 byte di un file, passare una delle intestazioni seguenti:
Range: bytes=0-511
x-ms-range: bytes=0-511
L'intestazione Content-Length
nella risposta è uguale al numero di byte tra ogni offset. Usando l'intervallo di esempio precedente per un file di 1.024 byte di lunghezza, Content-Length
sarebbe 512.
Se l'offset è valido e non supera la lunghezza totale del file, la richiesta restituirà un codice di stato 206 (contenuto parziale). Se l'offset non è valido e supera la lunghezza totale del file, la richiesta restituisce un codice di stato 416 (Impossibile attenersi all'intervallo richiesto).