Architecture 什么时候使用FTP好?

Architecture 什么时候使用FTP好?,architecture,ftp,file-transfer,Architecture,Ftp,File Transfer,根据我的经验,我看到很多架构图广泛使用FTP作为链接架构组件的媒介 作为一个不做体系结构决策但倾向于查看体系结构图的人,谁能解释一下使用FTP的价值是什么,在什么地方使用FTP是合适的,什么时候将数据作为文件传输是一个好主意 我知道,通常有一些遗留系统需要以这种方式工作——尽管任何历史洞察都会很有趣 我可以看到传输文件的吸引力(特别是如果需要传输文件的话),因为它的简单性和熟悉性,我想知道原因是否超出了这一点 编辑:感谢那些指出SFTP更可取的人,但是我的问题比想要一个文件传输协议的建议更广泛。

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

作为一个不做体系结构决策但倾向于查看体系结构图的人,谁能解释一下使用FTP的价值是什么,在什么地方使用FTP是合适的,什么时候将数据作为文件传输是一个好主意

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

我可以看到传输文件的吸引力(特别是如果需要传输文件的话),因为它的简单性和熟悉性,我想知道原因是否超出了这一点


编辑:感谢那些指出SFTP更可取的人,但是我的问题比想要一个文件传输协议的建议更广泛。很抱歉造成混淆。

我想安全和断开连接的网络或网段可能会起作用。我有过很多项目,其中有人需要从不同的系统导入数据,FTP是通过防火墙将数据导出的一种简单/安全的方法。一般来说,您可以安排它自动运行,大多数网络安全人员都可以打开FTP端口

什么时候使用FTP好?

在SFTP发明之前


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

这一切都取决于预期用途。看看你的情况,然后决定

  • 我正在移动什么数据
  • 它本机生成的格式是什么?(磁盘上的PDF、Web服务器脚本的文本输出等)
  • 如何使用数据
  • 何时使用数据?(即时到达,计划批处理作业?)
  • 什么连接介质连接数据生成器和数据使用者
例如:

进程通过将PDF文档写入本地raid阵列来生成PDF文档。你有另一台电脑,专门打印从大量服务器生成的所有PDF,这些服务器通过一个cron作业连接到本地千兆局域网,该作业计划在午夜运行

由于数据很可能太大,无法全部存储在打印服务器的RAM中,因此使用SFTP传输PDF是有意义的,这样可以在打印时从磁盘抓取PDF

另一个例子:


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

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


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

FTP是一种简单的跨平台传输文件的方式,前提是您有可靠的连接,并且完全不需要任何安全性(不要被询问密码的方式所愚弄——那里没有真正的安全性)

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


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

如果你需要向最落后的地区发送一封实际信函,那么很难找到比这更好的服务。如果您需要将文件发送到一个有着回水功能的地方,那么很难与之相比。

如果安全性不重要,那么FTP可能会很有用

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

基于文件的通信(如通过FTP、SFTP、SCP…)对

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

使用文件没有什么错。这是一项众所周知的成熟技术,易于应用、易于监控和调试。

-1推荐FTP而不是SFTP,并暗示FTP是传输文件的可靠方式。@Dave Markle:考虑到问题是为什么一般意义上使用FTP,这有点苛刻。就我的经验而言,当谈到FTP时,它指的是FTP,甚至是使用SFTP。“如果你有一个可靠的连接”!=“FTP是一种可靠的文件发送方式”。我认为最好的网络