可恢复文件上传

时间:2009-05-18 14:56:05

标签: c# java python

我正处于文件上传服务的设计阶段,该服务允许用户将非常大的zip文件上传到我们的服务器,并使用数据更新我们的数据库。由于文件很大(约300mb),我们希望允许用户限制他们想要用于上载的带宽量。他们还应该能够暂停和恢复传输,它应该从系统重启恢复。用户还需要在我们的MSSQL数据库中进行身份验证,以确保他们有权上载文件并对数据库进行更改。

我的问题是,最好的技术是什么?我们希望最大限度地减少所需的开发量,但我现在能够想到的唯一能让我们这样做的事情就是从头开始创建一个客户端和服务器应用程序,例如python,java或c#。是否有现有技术可以让我们这样做?

6 个答案:

答案 0 :(得分:4)

FTP出了什么问题?该协议支持可重用性,并且有很多客户端。

答案 1 :(得分:4)

有很多上传控件可供Google使用。这个download page上有几个。

另一个解决方法是让您的客户自己安装Firefox FTP插件或自己编写Firefox插件,但FTP是目前最简单的启动方式。

答案 2 :(得分:0)

在客户端,闪存;在服务器端,无论什么(它没有任何区别)。

没有现有技术(使用FTP或其他东西除外)。

答案 3 :(得分:0)

我发现了两种可能性

  • Microsoft后台智能传输服务(BITS)

    :上传和下载,大文件,加密(可用https),可恢复(只要用户登录即使自动恢复),手动暂停和恢复,身份验证(再次通过https) ),.NET包装,前景或后台优先级,...

    :带宽限制,文件验证(仅限文件大小),压缩

  • <强> rsync的

    :单向传输,大文件,部分上传恢复(以及停止暂停),验证,加密(通过ssh,stunnel),压缩,可用c库(librsync by Martin Pool [ 1],[2])

    :良好的Windows兼容性(仅通过cygwin或cwrsync),商业上可用(GPL)

有人在C#中找到了别的东西吗?

答案 4 :(得分:0)

使用HTML5创建可恢复的大型文件上传的示例可能会有所帮助。

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-resumable-video-uploade-in-node-js/

答案 5 :(得分:0)

我很惊讶没有人提到过torrent文件。它们也可以打包成一个脚本,然后触发要执行的东西。