我想使用.NET在SFTP上传输文件。我遇到的问题是,由于非常严格的安全性,我永远不能在我们的环境中将此文件写入磁盘(这意味着我不能将其上传到SFTP,因为它会将文件写入磁盘)。客户端已经从SFTP检索文件和处理我们的文件,因此我不希望他们不得不改变他们的任何内容。
我猜想,如果可以的话,我将不得不使用第三方库,因此任何使用第三方库的解决方案都是可以接受的。
关于这是否可能的任何想法,如果可以,怎么做?
谢谢:)
注意
从一个答案中我不清楚我对磁盘的事情是否清楚。澄清: 我们不允许在我们的环境中将文件写入磁盘,这包括FTP服务器。
注意
有可能将我们的SFTP服务器(Crush FTP)配置为不写入磁盘(或者至少将文件写入磁盘加密并发送解密)。这意味着只需简单地流式传输到正确配置的SFTP服务器就可以解决问题。
我的解决方案
在考虑给出的答案并进行进一步研究之后,我的解决方案可能是使用第三方库,如http://sshnet.codeplex.com/,并配置我们的SFTP server以在将文件写入磁盘之前加密文件,以及发送时解密。
答案 0 :(得分:1)
您考虑过允许sftp客户端访问ramdisk位置吗?将文件写入ramdisk,让客户端从ramdisk中检索它。
答案 1 :(得分:0)
我相信大多数第三方库在上传数据时都使用Stream对象作为数据源,您可以使用MemoryStream实例。