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).

Vedi anche

concetti di File di Azure