일부 FileREST GET 작업은 표준 HTTP Range
헤더 사용을 지원합니다. .NET 클라이언트 라이브러리를 비롯한 많은 HTTP 클라이언트는 헤더 크기를 Range
32비트 정수로 제한하므로 해당 값은 최대 4GiB로 제한됩니다. 파일 크기가 4GiB보다 클 수 있으므로 Azure Files HTTP Range
헤더를 사용하는 모든 작업에 대해 사용자 지정 범위 헤더 x-ms-range
를 허용합니다.
Microsoft Silverlight 라이브러리를 포함한 일부 HTTP 클라이언트에서는 Range
헤더에 대한 액세스가 모두 제한됩니다.
x-ms-range
헤더는 이러한 제한을 우회하는 데 사용될 수 있습니다.
x-ms-range
헤더가 요청에 지정된 경우, 서비스에서 x-ms-range
로 지정된 범위가 사용되고, 그렇지 않으면 Range
헤더로 지정된 범위가 사용됩니다.
범위 헤더 형식
Azure Files 및 x-ms-range
헤더에 대해 Range
두 개의 바이트 범위를 허용합니다. 바이트 범위는 다음 헤더 형식 중 하나를 따라야 합니다.
bytes=startByte-
bytes=startByte-endByte
형식 1: bytes=startByte-
이 범위는 오프셋 startByte
부터 파일 끝까지의 바이트를 반환합니다. 예를 들어, 파일의 처음 256바이트 이후의 모든 바이트를 포함하는 범위를 지정하려면 다음 헤더 중 하나를 전달할 수 있습니다.
Range: bytes=255-
x-ms-range: bytes=255-
응답의 Content-Length
헤더는 오프셋부터 파일 끝까지의 바이트 수와 동일합니다. 위의 Content-Length
예제 범위를 길이가 1,024바이트인 파일에 사용하면 756이 됩니다.
오프셋이 유효하고 파일의 총 길이를 초과하지 않으면 이 요청에서는 상태 코드 206(일부 내용)이 반환됩니다. 오프셋이 잘못되었고 파일의 총 길이를 초과할 경우에는 이 요청에서 상태 코드 416(요청한 범위가 충분하지 않음)이 반환됩니다.
형식 2: bytes=startByte-endByte
이 범위는 오프셋 startByte
부터 endByte
까지의 바이트를 반환합니다. 예를 들어, 파일의 처음 512바이트를 포함하는 범위를 지정하려면 다음 헤더 중 하나를 전달합니다.
Range: bytes=0-511
x-ms-range: bytes=0-511
응답의 Content-Length
헤더는 각 오프셋 사이의 바이트 수와 동일합니다. 길이가 1,024바이트인 파일에 대해 위의 예제 범위를 사용할 경우 Content-Length
는 512가 됩니다.
오프셋이 유효하고 파일의 총 길이를 초과하지 않으면 요청은 상태 코드 206(부분 콘텐츠)을 반환합니다. 오프셋이 잘못되었고 파일의 총 길이를 초과할 경우에는 이 요청에서 상태 코드 416(요청한 범위가 충분하지 않음)이 반환됩니다.