Share via


FileREST에 대한 범위 헤더 지정

일부 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(요청한 범위가 충분하지 않음)이 반환됩니다.

추가 정보

Azure Files 개념