Określanie nagłówka zakresu dla pliku FileREST
Niektóre operacje FileREST GET obsługują użycie standardowego nagłówka HTTP Range
. Wielu klientów HTTP, w tym biblioteki klienta platformy .NET, ogranicza rozmiar Range
nagłówka do 32-bitowej liczby całkowitej, a więc jej wartość jest ograniczona do maksymalnie 4 GiB. Ponieważ rozmiar plików może być większy niż 4 GiB, Azure Files akceptuje niestandardowy nagłówek zakresu dla każdej operacji, która przyjmuje nagłówek x-ms-range
HTTPRange
.
Niektórzy klienci HTTP, w tym biblioteka Programu Microsoft Silverlight, całkowicie ograniczają dostęp do nagłówka Range
. Nagłówek x-ms-range
może służyć również do obejścia tych ograniczeń.
x-ms-range
Jeśli nagłówek jest określony w żądaniu, usługa używa zakresu określonego przez x-ms-range
; w przeciwnym razie jest używany zakres określony przez Range
nagłówek.
Formaty nagłówków zakresu
Azure Files akceptuje dwa zakresy bajtów dla Range
nagłówków i x-ms-range
. Zakres bajtów musi być zgodny z jednym z następujących formatów nagłówków:
bytes=startByte-
bytes=startByte-endByte
Format 1: bajty=startByte-
Ten zakres zwróci bajty z przesunięcia startByte
przez koniec pliku. Aby na przykład określić zakres obejmujący wszystkie bajty po pierwszych 256 bajtach pliku, można przekazać jeden z następujących nagłówków:
Range: bytes=255-
x-ms-range: bytes=255-
Nagłówek Content-Length
w odpowiedzi jest równy liczbie bajtów od przesunięcia do końca pliku. Użycie powyższego zakresu przykładowego dla pliku o długości Content-Length
1024 bajtów będzie wynosić 756.
Jeśli przesunięcie jest prawidłowe i nie przekracza całkowitej długości pliku, żądanie zwróci kod stanu 206 (zawartość częściowa). Jeśli przesunięcie jest nieprawidłowe i przekracza łączną długość pliku, żądanie zwróci kod stanu 416 (Żądany zakres nie jest możliwy do zaspokojenia).
Format 2: bytes=startByte-endByte
Ten zakres zwróci bajty z przesunięcia startByte
przez endByte
. Aby na przykład określić zakres obejmujący pierwsze 512 bajtów pliku, należy przekazać jeden z następujących nagłówków:
Range: bytes=0-511
x-ms-range: bytes=0-511
Nagłówek Content-Length
w odpowiedzi jest równy liczbie bajtów między każdym przesunięciem. Użycie powyższego zakresu przykładowego dla pliku o długości Content-Length
1024 bajtów będzie wynosić 512.
Jeśli przesunięcie jest prawidłowe i nie przekracza całkowitej długości pliku, żądanie zwróci kod stanu 206 (zawartość częściowa). Jeśli przesunięcie jest nieprawidłowe i przekracza łączną długość pliku, żądanie zwróci kod stanu 416 (Żądany zakres nie jest możliwy do zaspokojenia).