ruby – 使用HTTP字节范围标头加速下载

有没有人有过在多个并行请求中使用HTTP字节范围来加速下载的经验?

我有一个应用程序,需要从Web服务(1MB)下载相当大的图像,然后将修改后的文件(调整大小和裁剪)发送到浏览器.存在许多这些图像,因此缓存可能无效 – 即缓存可能是空的.在这种情况下,我们在等待图像下载时会遇到一些相当大的延迟时间,500 m / s,这超过了我们应用程序总响应时间的60%.

我想知道我是否可以通过使用一组并行HTTP范围请求来加速这些图像的下载,例如每个线程下载100kb的数据,并将响应连接回一个完整的文件.

那里有人有这种经历吗?额外下载的开销会否定速度增加,或者这实际上是否有效?该应用程序是用ruby编写的,但任何语言的经验/示例都会有所帮助.

有关设置的一些细节:

>该服务没有带宽或连接限制(由我公司拥有)
>很难预先生成所有裁剪和调整大小的图像,有数百万个具有大量潜在的排列
>很难在与图像磁盘盒相同的硬件上托管应用程序(政治!)

谢谢

最佳答案 我已经为你从中提取图像的地方编写了后端和服务.每个网站都不同,所以基于我所做的细节可能不适用于你想要做的事情.

这是我的想法:

>如果您与公司签订了服务协议,那么您正在提取图像(这应该是因为您需要相当高的带宽),然后预处理其图像目录并将缩略图存储在本地,作为数据库blob或磁盘上的文件使用包含文件路径的数据库.
>该服务是否已将图像作为缩略图提供?他们不会向某人的浏览器发送全尺寸图像……除非他们疯狂或虐待狂,而且他们的用户都是疯狂和自虐.我们将图像预处理成三个或四个不同的缩略图大小,因此提供您想要做的事情本来是微不足道的.
>如果您的请求是他们期望的,那么他们应该拥有API或至少一些资源(程序员)可以帮助您以最快的方式访问图像.他们实际上应该有一个专门的主机为此目的.

作为一名摄影师,我还需要提及的是,您所做的事情可能存在版权和/或服务条款问题,因此请确保您通过咨询律师和您正在访问的网站获得优惠.不要认为一切都好,知道它.版权法不符合一般公众对版权的概念,因此预先聘请律师可能非常有教育意义,并且让您感觉良好.如果你已经和一个人交谈,那么你就知道我在说什么.

点赞