我正在开发一个文件上传系统,它将大型文件的各个部分存储在多个服务器上。所以1GB文件的分布看起来像这样:
Server 1: 0-128MB
Server 2: 128MB-256MB
Server 2: 256MB-384MB
... etc
这样做的目的是允许冗余(每个部分将存在于多个服务器上),安全性(没有一个服务器可以访问整个文件)和成本(带宽费用是分布式的)。
我很好奇是否有人对如何“欺骗”网络浏览器在一个链接中下载各个部分有意见。
我想到的是:
我不确定我的示例是否有效,因为我还没有测试过它。如果有人可能有其他解决方案,我很好奇吗?
我想让整个过程尽可能简单(理想情况下除了简单的下载之外不需要工作)。我不希望用户必须使用其他程序(即:将文件放在一起)。我也不想使用代理服务器,因为它会产生额外的带宽成本。
据我所知,没有用于编写文件的JavaScript解决方案,如果有的话,那就太棒了。
答案 0 :(得分:2)
AFAIK使用HTTP协议是不可能的。您可以使用自定义浏览器扩展,但这取决于浏览器。另一种方法是创建一个Java applet,它将从不同的服务器下载文件。 applet可以接受不同服务器的URL作为参数。
答案 1 :(得分:2)
要保存生成的文件: https://stackoverflow.com/a/4551467/329062
该解决方案将文件存储在内存中,因此它不适用于非常大的文件。
您可以使用JSONP将部分文件下载到JS变量中。这也可以让你绕过同源政策。
答案 2 :(得分:1)
Javascripts安全模型只允许您访问来自Javascript来源的同一来源的数据 - 即不是多个服务器。
如果要在多个服务器上拥有文件位,则需要用户加载网页,获取该位,然后最终以正确的顺序将这些位粘在一起。如果你能够让所有用户(正确地)做到这一点,那么你就比我更好。
答案 3 :(得分:1)