【问题标题】:Can .NET TcpListener class receive data sent via SSH (SFTP).NET TcpListener 类可以接收通过 SSH (SFTP) 发送的数据吗
【发布时间】:2014-11-11 18:02:54
【问题描述】:

我需要在我的 .NET 4.5 应用程序中接收和解析通过 SFTP 通过 SSH 发送的数据。 SFTP 服务器在 Windows 2008 服务器上运行 Cygwin OpenSSH。

我知道.NET TcpListener 类可以接收和解析通过 FTP 发送的数据,但我不知道这是否可以使用 SFTP,如果TcpListener 可以接收数据,是否有必要或可能解密数据?

不幸的是,我需要通过 SFTP 通过 SSH 接收数据,因此请求通过 FTP 或 FTPS 接收数据不是一个选项。

【问题讨论】:

  • IFAIK, TcpListener 也不通过 FTP 接收数据。您必须在其之上实现 FTP 协议。与 SFTP/SSH 相同。

标签: c# .net ssh sftp tcplistener


【解决方案1】:

OpenSSH 不提供任何可用于处理接收文件的触发器。

您所能做的就是监控本地文件系统,OpenSSH 存储上传(接收)的文件。

或者按照@user469104 的建议通过 SFTP 轮询文件。

或者使用支持触发器的其他 SFTP 服务器。虽然我不知道有什么免费的服务器支持这个。

Ntb,要使用TcpListener,您必须自己实现 SSH/SFTP 协议。什么是艰巨的任务。

【讨论】:

  • 感谢您的回复,您很好地概述了我在执行此任务时面临的限制。正如您所说,我知道我可以在我的应用程序中编写一个监视功能,它会定期检查我的服务器上的新文件,但我担心这样做是它可能会在文件完全上传到我的服务器之前尝试访问它,这可能会导致我的应用程序无法解析一些关键数据。有什么建议???
  • 或者,有没有办法在我的 OpenSSH 服务(Windows 2008 服务器)上启用详细的活动记录?如果是这样,我正在考虑尝试读取日志文件以检测数据何时上传到我的服务器。我希望我可以通过 SFTP 从客户端服务器中提取文件,但这不是一个选择,因为我的任务是构建一个必须与客户端现有系统配合使用的中间应用程序。
  • 确定文件上传是否完成的常见解决方案是同意客户端上传具有不同名称/扩展名的文件(例如.filepart),上传完成后将文件重命名为最终名称。或者将文件上传到特殊文件夹,上传后将其移动到最终文件夹。虽然这涉及到客户端的工作。否则,您可以在文件最后一次出现/更改后等待一段时间(1 分钟?)以希望它完成。
  • 感谢您的建议,您帮助我朝着正确的方向前进。我决定使用 .net FileSystemWatcher 来检测我的 SFTP 接收文件夹中何时发生更改,并使用 .net FileStream 函数来验证在读取文件之前没有其他打开的文件连接。我知道使用这些流程可能存在一些缺点,但我认为如果没有来自客户端发送数据的更具体的数据或操作,我可以做到最好。
【解决方案2】:

您需要使用第三方库,.NET 中没有对 SSH 或 SFTP 的内置支持。

另外,请注意 SSH 和 SFTP 是两种不同的协议。说您将通过 SFTP 通过 SSH 接收数据听起来很奇怪。除非您计划通过 SSH 隧道传输 SFTP 流量,但这是非常不寻常的。

一种选择是使用 WinSCP,它可用于通过 SFTP 检索文件。它是一个原生 Windows 命令行应用程序,但它有一个 .NET 包装器,允许通过 .NET 实现自动化。

http://winscp.net/eng/docs/library

【讨论】:

  • 我很抱歉我最初的帖子令人困惑。我已将 Cygwin OpenSSH 配置为 Windows 服务来接收文件,这些文件必须在我的 .net 应用程序中进行解析。我正在尝试找到一种方法来检测文件何时通过 SSH 服务上传到我的服务器,以及文件上传何时完成。当然,正如您所建议的那样,WinSCP 库非常适合通过 SFTP 检索文件,但不提供任何服务(我知道)来管理文件的接收。有什么建议吗?
  • 根据答案,WinSCP 有一个 .NET 包装器,允许通过 .NET 实现自动化。使用它,您可以创建管理文件接收所需的任何内容。
  • 请重新表述您的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
相关资源
最近更新 更多