0

我正在寻找从客户那里收集文件的方法。这些客户有我们的软件,我们目前正在使用 FTP 从他们那里收集文件。这些文件从客户的数据库中收集,加密并通过 FTP 上传到我们的 FTP 服务器。这个过程充满了挫折和障碍。该软件经常被常见的防火墙阻止,并且经常遇到 VPN 和 NAT 的困难(切换到被动而不是主动通常会有所帮助)。

我的问题是,人们对于以可靠的方式以编程方式从客户端获取文件还有什么其他想法。他们提交的大多数文件的大小都小于 1 MB。但是,其中之一的大小最大为 25 MB。

我考虑过 HTTP POST,但是,我担心 25 mb 的文件通常会故障转移帖子(网络服务器在文件完全上传之前超时)。

想法?

安德鲁G

编辑:我们可以使用任何常见的网络技术。我们正在使用共享主机,这可能会使中央配置更改难以进行。我从常见的使用角度熟悉 PHP ......但不是从设置的角度来看(编写了很多代码,但没有陷入任何过于繁重的任务)。Ruby on Rails 也是可能的......但我将从头开始。理想情况下......我正在寻找一种“网络”方式来完成它,因为我希望最终准备好从已安装的代码过渡。

4

3 回答 3

0

一种选择是在浏览器中运行一些东西,它将上传分成块,这有望使其更可靠。执行此操作的控件还会在上传过程中向用户提供一些反馈,这是您通过简单的 HTTP POST 无法获得的。

一个快速的谷歌发现了这个免费的 Java 小程序,它就是这样做的。将有许多其他免费和付费选项可以做同样的事情

于 2009-10-27T22:54:16.187 回答
0

研究 scp 和 rsync。

于 2009-10-27T22:44:48.773 回答
0

你可能是指一个HTTP PUT. 这应该像一个魅力。如果你有一个不错的网络服务器。但据我所知,它是不可重新启动的。

FTP 是正确的选择(通过防火墙的被动模式)。如果您经常遇到 VPN 连接中断(酒店网络太糟糕 :-))问题,请使用支持可重启传输的 FTP 服务器。

必须支持的 FTP 命令是REST.

来自http://www.nsftools.com/tips/RawFTP.htm

Syntax: REST position

设置文件传输的开始点;对于恢复中断的传输很有用。对于非结构化文件,这只是一个十进制数。该命令必须紧接在数据传输命令之前(RETRSTOR仅);即它必须在任何PORTPASV命令之后。

于 2009-10-27T22:49:39.127 回答