Ithit webdav server 如何强制读取操作始终请求整个文件

Ithit webdav server 如何强制读取操作始终请求整个文件,ithit-webdav-server,Ithit Webdav Server,我目前正在升级以前的webdav实现,以使用IT-HIT 在这个过程中,我注意到文件的读取操作可以请求整个文件或其中的一部分。我想知道是否有一种方法可以强制始终请求整个文件。我们的webdav处理小文件,不太需要它 我这样问是因为在我使用的文档(Java客户端版本3.2.2420)中,我认为它只为写操作指定了它 感谢您的帮助。读取操作是一个HTTP GET请求,它可以包含一个范围标头。WebDAV客户端以及任何其他客户端(如web浏览器)都可以利用GET请求来读取和下载文件内容。作为GET请求的

我目前正在升级以前的webdav实现,以使用IT-HIT

在这个过程中,我注意到文件的读取操作可以请求整个文件或其中的一部分。我想知道是否有一种方法可以强制始终请求整个文件。我们的webdav处理小文件,不太需要它

我这样问是因为在我使用的文档(Java客户端版本3.2.2420)中,我认为它只为写操作指定了它


感谢您的帮助。

读取操作是一个HTTP GET请求,它可以包含一个范围标头。WebDAV客户端以及任何其他客户端(如web浏览器)都可以利用GET请求来读取和下载文件内容。作为GET请求的一部分,它们可以附加范围标头,指定要获取的文件内容的哪一部分。例如,当您暂停然后继续下载时,或者当下载中断然后恢复时,客户机可以指定范围请求:

GET https://webdavserv/file.ext 
Range: bytes=12345-45678
要测试服务器是否支持范围标头,客户端应用程序可以发送标头请求。如果服务器响应包含Accept Ranges:bytes标头,则支持范围标头:

HEAD https://webdavserv/file.ext 
...
Accept-Ranges: bytes
因此,解决方案是从HEAD响应中删除Accept Ranges头。如果客户端能够正确处理不存在Accept Ranges标头的情况,它将始终请求整个文件

如果不能直接从代码中删除它,在许多情况下,可以在发送响应之前从响应中删除或过滤头。特定的头删除代码取决于您的服务器(Java、ASP.NET、ASP.NET核心、OWIN等)。例如,对于ASP.NET,它将如下所示:

protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    HttpContext.Current.Response.Headers.Remove("Accept-Ranges");
}
对于Java,您需要创建一个过滤器: