2009-05-18 114 views
5

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

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

回答

4

有相当多的上传控件,你应该能够谷歌。这个download page有几个。

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

4

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

+0

一旦数据上传到服务器,我们需要执行某种形式的脚本,在数据库表中添加一行,ftp可以在服务器上执行shell命令? – 2009-05-18 15:06:29

+5

如果您需要在上传后执行某些操作,则可以使用任何您喜欢的语言将ftp服务器作为应用程序的一部分来实现。 Python有ftplib。或者,您可以观看文件事件的上传目录来触发您的脚本。 – JimB 2009-05-18 15:21:39

0

在客户端,闪存;在服务器端,无论如何(这不会有任何区别)。

没有现有技术(除了使用FTP或其他)。

0

我发现2种更多的可能性

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

    拥有:并且下载,大文件,加密(相HTTPS),断点续传(甚至自动恢复,只要用户登录),手动暂停和恢复,身份验证(通过https再次),.NET的包装,前台或后台优先,...

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

  • rsync的

    拥有:单向传输,大型文件,部分上传的简历(并通过停止暂停),验证,加密(通过ssh,安全通道),压缩,可用C库(librsync由马丁池[1],[2])

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

任何人在C#中发现别的东西?

0

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