C# 是否可以使用.NET通过SFTP按需传输文件?

C# 是否可以使用.NET通过SFTP按需传输文件?,c#,.net,streaming,sftp,C#,.net,Streaming,Sftp,我想使用.NET通过SFTP传输文件。我的问题是,由于非常严格的安全性,在我们的环境中,我永远无法将此文件写入磁盘(这意味着我不能将其上载到SFTP,因为这样它就会将文件写入磁盘)。客户机已经在从SFTP检索文件并处理我们的文件,所以我不希望他们必须更改他们这方面的任何内容 我想,如果这是可能的,我将不得不使用第三方库,因此任何使用第三方库的解决方案都是可以接受的 有没有关于这是否可能的想法,如果有,如何做到 谢谢:) 注意 不确定从一个答案来看,我对磁盘的事情已经足够清楚了。澄清: 在我们的环

我想使用.NET通过SFTP传输文件。我的问题是,由于非常严格的安全性,在我们的环境中,我永远无法将此文件写入磁盘(这意味着我不能将其上载到SFTP,因为这样它就会将文件写入磁盘)。客户机已经在从SFTP检索文件并处理我们的文件,所以我不希望他们必须更改他们这方面的任何内容

我想,如果这是可能的,我将不得不使用第三方库,因此任何使用第三方库的解决方案都是可以接受的

有没有关于这是否可能的想法,如果有,如何做到

谢谢:)

注意

不确定从一个答案来看,我对磁盘的事情已经足够清楚了。澄清: 在我们的环境中,我们不允许将文件写入磁盘,这包括FTP服务器

注意

可以将我们的SFTP服务器(Crush FTP)配置为不写入磁盘(或者至少将文件加密后写入磁盘并解密发送)。这意味着只要将数据流传输到正确配置的SFTP服务器就可以解决问题

我的解决方案


在考虑了给出的答案并做了进一步的研究之后,我的解决方案可能是使用第三方库,如,并将我们的配置为在将文件写入磁盘之前对其进行加密,并在发送时对其进行解密。

我相信大多数第三方库在上载数据时使用流对象作为数据源,您可以使用MemoryStream实例来实现这一点

您是否考虑过允许sftp客户端访问ramdisk位置?将文件写入ramdisk,然后让客户端从ramdisk中检索。

您如何设想上载文件,该文件不会保存在磁盘中,但客户端将通过url访问它?这就是我试图找到的。谢谢Eugene。你知道我想按需将文件流式传输到客户端,而不是上传文件,因为我们不允许将文件写入磁盘?@StephenOberauer方向不重要,两种情况下的方法都是一样的:下载时,你可以流式传输到MemoryStream实例或使用某种ReadRemoteFile()方法(而不是WriteRemoteFile())来获取数据块并将其写入需要的位置。我接受这个答案,基于这样的假设,即您还必须配置自己的SFTP服务器,使其不将文件写入磁盘,或在这样做时对其进行加密。我想您指的是SFTP服务器。谢谢……好主意:)