Streaming Movies and Other Content

预计阅读时间:2分钟

此功能增加了对处理部分内容请求的支持:带有Range标头的请求. 它截取生成的响应,并添加Accept-RangesContent-Range标头,并在需要时切片所提供的内容.

部分内容非常适合流式传输内容或通过下载管理器或在不可靠的网络中恢复部分下载.

对于静态内容功能特别有用.

此功能在io.ktor.features.PartialContent类中定义,并且不需要其他构件.

Usage

要使用默认配置安装PartialContent功能:

import io.ktor.features.*

fun Application.main() {
    // ...
    install(PartialContent)
    // ...
}

Configuration

install(PartialContent) {
    // Maximum number of ranges that will be accepted from a HTTP request.
    // If the HTTP request specifies more ranges, they will all be merged into a single range.
    maxRangeCount = 10
}

Detailed description

此功能仅适用于HEADGET请求. 如果客户端尝试将Range标头与其他方法一起使用,它将返回405 Method Not Allowed .

投放范围时会禁用压缩.

仅对定义Content-Length响应启用. 而且:

  • 删除Content-Length标头
  • 添加Accept-Ranges标头
  • 添加Content-Range标头和所请求的范围
  • 只提供所请求的内容片

只要定义了它的长度,它就可以与OutgoingContent.ReadChannelContent类型的任何提供的内容一起使用,例如LocalFileContent .

RFC-7233中描述了此部分内容的HTTP机制.

by  ICOPY.SITE