客户通过网站上传到另一台服务器?

我需要在公司网站上设置一些东西,以便客户login和上传艺术品文件(我们是一家印刷公司)。 我想看到的是,在login客户之后,会被引导到显示其上传的其他文件的页面以及我们可供他们下载的文件。

最棘手的部分是该网站的商业托pipe(powweb.com),但艺术文件需要在我们的ftp服务器,这是在我们的防火墙(外部访问。)该网站是严格的静态HTML,没有内容pipe理系统在使用中; 非常基本。 没有过程变得太昂贵,最好/最简单的方法是什么? 任何人都知道任何开放源代码或商业软件包会允许这种情况发生?

这可能不言而喻,我不是一个networking程序员, 我知道自己很危险,但愿意挖掘和学习需要做的事情。 我们打算在今年的某个时候对网站进行改造,如果使用内容pipe理器将会对此有所帮助,我完全赞同。

谢谢!

第1步安全地configuration主机Web服务器有一个“暂存”目录,它将保存客户端上传的文件,直到您可以检索它们。

步骤2在内部FTP服务器上写入一个cron作业,转到Web服务器并检索下载的消息。

我假设你在networking服务器上的空间有限,所以我build议你在validation你已经成功下载了这些文件后,从那里删除它们。 如果您在Web服务器上具有shell访问权限,则可以使用md5哈希来validation正确性。 如果没有,你可能只需要大小。

我的公司使用这样的技术。 我们有一个每5分钟运行一次的过程,检索文件,validation它们,然后从源代码中删除它们。 它对我们来说工作得很好。

这取决于您在内部服务器上需要多快的文件。

同步解决scheme

如果不需要实时的话,可以让用户上传并从networking主机上下载并每n分钟同步一次。 有同步部分的各种解决scheme,但我build议rsync。

实时解决scheme

如果需要实时的话,你可以在你的内部主机上运行一个web服务器,它只提供上传部分。 它可以住在像upload.mycompany.com这样的子域名上。 如果你做得正确,用户不会注意到它托pipe在不同的服务器上。 运行一个公开的networking服务器并不是一件容易的事,而且需要花费大量的时间进行维护。

上传/下载部分

编写代码将file upload到networking服务器对于参与编程的每个人来说都是不容小觑的。 这样做是以安全,可靠,可扩展和高效的方式进行的。 即使在你的问题中暗示你愿意学习所有需要的东西,你也应该考虑至less将这部分任务外包。

我将在Web主机上build立一个安全的文件夹,该文件夹是您的内部networking上托pipe的分布式文件系统,您的虚拟主机连接到您的文件服务器所连接的虚拟主机上。

使用您当前的设置,您应该可以使用您现有的设置。 有多种方法可以将ftp作为驱动器或文件夹安装在各种操作系统中。 如果您的虚拟主机无法build立一个实际上与您的ftp服务器连接的文件夹作为文件夹,那么可以在您的ftp服务器上build立一个连接到您的虚拟主机ftp的文件夹/驱动器。

仅仅使用ftp就有一些潜在的安全性和读取速度问题。 只要足够的encryption,对文件夹的访问控制,以及恶意文件的内容filter,你应该没问题。

如果虚拟主机连接到你的ftp来放置文件,这个方法将会有读取延迟,除非你包括某种脚本,把一个copie放在web主机上,一个副本放到共享文件夹中。

不完全一样,但你可以考虑使用连接到Amazon S3的 JungleDisk 。 Amazon S3是基于云的文件存储系统,Jungle Disk是用于访问文件的Windows / Mac程序。 Amazon S3按转移和存储量收费,Jungle Disk是一次性的20美元一次性费用。 S3的定价真的很合理,很便宜。

您可以将Jungle Disk作为服务安装在办公室networking内的计算机上,并且会自动将内容与您的S3存储桶同步。 当客户端上传到S3时,您将自动将这些文件提取到本地服务器,反之亦然 – 当您将文件放入同步的文件夹结构中时,它们也会进入S3。

您可以为每个客户端设置一个存储桶(类似于文件夹),并且每个客户端可以访问他们自己的存储桶中的文件。 没有编程涉及。

你最好的select是使用你的ftp服务器。 这不是最人性化的解决scheme,但提出了一个常见问题和教程,告诉人们如何压缩和FTP文件。 阳光下的每个操作系统都有一个内置的ftp客户端。 甚至有一些很好的开源FTP客户端,一个是Filezilla。

其他任何可行的解决scheme都需要贵公司花钱。 与您目前的主机,你将被限制在你可以接受的文件大小。 search他们的论坛文件大小和/或执行超时。