我需要在我们公司的网站上设置一些东西,以便客户可以登录并上传艺术文件(我们是一家印刷公司)。我希望看到客户登录后会被引导到一个页面,该页面显示他们已上传的其他文件以及我们可供他们下载的文件。
棘手的部分是该网站是商业托管的(powweb.com),但艺术文件需要放在我们的 ftp 服务器上,该服务器位于我们的防火墙内(具有外部访问权限)。该网站严格是静态 html,不使用任何内容管理系统;非常基础。实现此目的的最佳/最简单方法是什么,而又不会让流程变得过于昂贵?有人知道任何开源或商业软件包可以实现这一点吗?
不用说,我不是一名网络程序员;我知道的足以让我成为危险人物,但我愿意深入研究并学习需要做的事情。我们计划在今年某个时候改造网站,如果使用内容管理器对此有帮助,我完全愿意接受。
谢谢!
答案1
步骤1安全地配置托管 Web 服务器以拥有“暂存”目录,该目录将保存客户端上传的文件直到您可以检索它们。
第2步在内部 FTP 服务器上编写一个 cron 作业,该作业转到 Web 服务器并检索下载的消息。
我假设您的 Web 服务器上的空间有限,因此我建议您在确认已成功下载文件后从那里删除它们。如果您在 Web 服务器上有 shell 访问权限,则可以使用 md5 哈希来验证正确性。如果没有,您可能只需要考虑大小。
我的公司就使用了类似的技术。我们有一个进程,每天每 5 分钟运行一次,检索文件、验证文件,然后从源头删除文件。对我们来说,这个进程非常有效。
答案2
这取决于您需要内部服务器上文件的速度有多快。
同步解决方案
如果不需要实时,那么就让人们上传和下载到您的网络主机,并每 n 分钟同步一次。同步部分有多种解决方案,但我建议使用 rsync。
实时解决方案
如果需要实时,您可以在内部主机上运行仅提供上传部分的 Web 服务器。它可以位于子域中,如 upload.mycompany.com。如果您操作正确,用户不会注意到它托管在不同的服务器上。然而,运行公开可用的 Web 服务器并不适合胆小的人,并且需要相当长的时间进行维护。
上传/下载部分
对于每个参与编程的人来说,编写将文件上传到网络服务器的代码都是轻而易举的事。但以安全、可靠、可扩展和高效的方式完成这项工作却并非易事。即使您的问题暗示您愿意学习所有需要的知识,您也应该考虑至少将这部分任务外包。
答案3
我将在网络主机上设置一个安全文件夹,该主机是一个分布式文件系统,托管在您的网络主机所连接的内部网络上或您的文件服务器所连接的网络主机上。
使用当前设置,您应该能够使用现有设置。在各种操作系统中,有多种方法可以将 ftp 安装为驱动器或文件夹。如果您的 Web 主机无法设置一个实际上与您的 ftp 服务器连接的文件夹,则可以在您的 ftp 服务器上设置一个连接到您的 Web 主机的 ftp 的文件夹/驱动器。
仅使用 ftp 可能会存在一些潜在的安全性和读取速度问题。只要有足够的加密、文件夹的访问控制和恶意文件的内容过滤器,您就应该没问题。
如果网络主机连接到您的 ftp 来放置文件,则此方法将产生读取延迟,除非您包含某种脚本,将一份副本本地放置在网络主机上,并将一份副本放入共享文件夹。
答案4
最好的办法是使用 FTP 服务器。这不是最方便用户使用的解决方案,但可以发布常见问题解答和教程,向人们展示如何压缩和 FTP 文件。世界上每个操作系统都有内置的 FTP 客户端。甚至还有一些不错的开源 FTP 客户端,例如 Filezilla。
所有其他可行的解决方案都需要贵公司花钱。使用您当前的主机,您可以接受的文件大小将受到限制。在他们的论坛上搜索文件大小和/或执行超时。