Udostępnij za pośrednictwem


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

Zobacz też

pojęcia dotyczące Azure Files