Google app engine 范围请求转换为分块传输编码

Google app engine 范围请求转换为分块传输编码,google-app-engine,Google App Engine,我从blobstore提供PDF,并且我添加了对范围请求的支持。在返回客户端的第一个响应中,我只需设置以下标题: 分别设置标题(“X-AppEngine-BlobKey”,BlobKey) 相应的setHeader(“接受范围”、“字节”) 预期的行为是,客户端将收到这些标题,然后请求特定范围,然后我的应用程序将通过以下方式处理后续请求: 分别设置标题(“X-AppEngine-BlobRange”,范围) blobstoreService.service(blobKey,resp) 这在开发环

我从blobstore提供PDF,并且我添加了对范围请求的支持。在返回客户端的第一个响应中,我只需设置以下标题:

分别设置标题(“X-AppEngine-BlobKey”,BlobKey)

相应的setHeader(“接受范围”、“字节”)

预期的行为是,客户端将收到这些标题,然后请求特定范围,然后我的应用程序将通过以下方式处理后续请求:

分别设置标题(“X-AppEngine-BlobRange”,范围)

blobstoreService.service(blobKey,resp)


这在开发环境中非常有效。不幸的是,当它被部署到GAE并使用快速连接时,GAE会切换到分块传输编码,而额外的请求永远不会发生。在慢速连接上,它不会切换到分块传输编码,因此按预期工作。在使用分块传输编码传输整个文件之前,显示PDF的客户端似乎不支持呈现初始页面。因此,我更愿意强制GAE使用我在应用程序中指定的范围请求。是否有人知道这是如何实现的,以及为什么快速连接会自动将应用程序代码中指定的预期行为从范围请求更改为分块传输编码?

因此,我仍然没有找到解决上述问题的方法。我现在还在谷歌云存储上存储一些文件。目前,我只需使用createGsBlobKey()并使用与上述相同的方法即可为它们提供服务。这导致了与上述相同的问题。有没有其他方法可以通过appengine提供文件,但不使用blobstoreapi?