8

根据我的经验,我看到很多架构图,它们广泛使用 FTP 作为链接架构组件的媒介。

作为不做出架构决策但倾向于查看架构图的人,任何人都可以解释使用 FTP 的价值是什么,它在哪里合适以及何时将数据作为文件传输是一个好主意。

我知道通常有一些遗留系统只需要以这种方式工作——尽管任何历史洞察力也会很有趣

由于简单和熟悉,我可以看到传输文件的吸引力(尤其是在需要传输的文件时),并且想知道推理是否超出此范围。

编辑:感谢那些指出 SFTP 更可取的人,但是我的问题比想要推荐文件传输协议更广泛。对困惑感到抱歉。

4

7 回答 7

8

什么时候使用 FTP 比较好?

在 SFTP 发明之前。


解决编辑问题(也就是这个问题中更广泛的问题)

这一切都归结为预期用途。查看您的情况并确定

  • 我要移动什么数据?
  • 它本机生成的格式是什么?(磁盘上的 PDF、网络服务器脚本的文本输出等)
  • 数据是如何消费的?
  • 什么时候消费数据?(立即到达,预定的批处理作业?)
  • 什么连接媒介连接数据生成者和数据消费者?

例如:

一个进程通过将 PDF 文档写入本地 raid-array 来生成它们。您有另一台 PC 专用于打印从通过计划在午夜运行的 cron 作业连接到本地千兆 LAN 的众多服务器生成的所有 PDF。

鉴于数据很可能太大而无法全部存储在打印服务器上的 RAM 中,因此使用 SFTP 传输 PDF 以便在打印时可以从磁盘中获取它们是有意义的。

另一个例子:

机器需要以特殊方式从机器中抓取大量小文件,解析它们并将结果存储在数据库中。在这种情况下,使用 SFTP 将它们从磁盘移回另一个磁盘以立即读取并推送到数据库中只是愚蠢的。在解析并推入数据库之前,没有理由将较小的文件放入 RAM 中,因此 SFTP 可能不是最佳解决方案。

于 2010-05-19T11:41:27.363 回答
4

如果您需要向最落后的地区发送一封实体信,那么很难击败拥有2000 年历史的邮政服务。如果您需要将文件发送到功能落后的地方,则很难击败拥有40 年历史的 Postel 服务

于 2010-05-19T11:46:03.820 回答
3

一些 lecacy 系统使用文件夹以 XML 或 CSV 等格式传输数据,在这些情况下需要将文件写入磁盘。如果集成到网络外部/互联网上的另一个系统,则在 FTP 站点上提供这些系统是有意义的。较新的系统可能使用 WebServices 或其他“在线”技术来减少对磁盘的保存。如果这些文件非常大,FTP 可能是更好的解决方案。

在某些行业,例如印刷行业,大型 PDF 文件是通过各种工作流程的路径,其中 PDF 文件通过该工作流程进行处理、操作等。在印刷行业中,使用文件夹(进而使用 FTP)很常见,他们通常将这些称为“热文件夹”

于 2010-05-19T11:42:49.413 回答
3

如果安全无关紧要,那么 FTP 会很有用。

但是,考虑到现代选项,我可能永远不会使用它,而是选择 SFTP/SCP/rsync 或 HTTP(可能使用 WebDAV)。一方面,这些协议都有更好的安全性选项(至少通过 SSL 的 HTTP)。此外,它们是更简单的协议。FTP 有一个讨厌的问题,即实际数据是通过单独的连接而不是控制命令传输的,这使得防火墙更加困难。此外,在非被动模式下,该连接是从服务器到客户端的,这使得防火墙几乎成为一场噩梦。如果有遗留互操作需求,它可能很有用,但 HTTP 客户端程序和库很容易获得,所以这些天我只是使用它。

于 2010-05-19T12:18:01.120 回答
1

如果您有可靠的连接并且绝对不需要任何安全措施,FTP 是一种简单的跨平台传输文件的方式(不要被它询问您的密码所迷惑——那里没有真正的安全措施)。

很多时候,人们实际上需要安全性,但他们犯了使用 FTP 的错误,因为他们只是相信这就是我们所做的。更好的方法通常是使用 SFTP(我喜欢 OpenSSH 的实现),或者使用安全的 Web 服务传递数据。

当然,正确实施 SFTP 意味着实施者必须正确生成、存储和交换他们的密钥,并了解信任是如何工作的。通常这对他们来说太费力了,所以人们倾向于走简单的路线并使用 FTP。如果你问我,有点难过。

于 2010-05-19T11:45:14.693 回答
1

基于文件的通信(如通过 FTP、SFTP、SCP...)适用于

  • 传输大量数据
  • 批量操作场景
  • 异步通信

使用文件没有任何问题。它是一种广为人知的成熟技术,易于应用,易于监控和调试。

于 2010-05-20T09:20:35.913 回答
-1

我想安全和断开连接的网络或网段可能会发挥作用。我有各种各样的项目,有人需要从不同的系统导入数据,而 FTP 是一种通过防火墙获取数据的简单/安全的方式。一般来说,您可以安排它自动运行,大多数网络安全人员会在 FTP 端口打开的情况下正常运行。

于 2010-05-19T11:41:02.403 回答