Asp.net 将文件从内存流上载到SFTP

Asp.net 将文件从内存流上载到SFTP,asp.net,c#-4.0,azure,sftp,Asp.net,C# 4.0,Azure,Sftp,如何将文件从内存流上载到SFTP服务器。本地路径不可用,因为我正在从azure blob上载文件。我得到的信息是.NET不支持SFTP协议,因此尝试了第三方DLL,如“SharpSSH”、“Routrek.granados”和“WinSCP”。但是没有一个适合我的场景。put方法中不支持ie bite[]或stream 有人能给我推荐一些适合我的情况的免费DLL吗?或者我能处理这个问题的方法 提前感谢。您可以继续使用WinSCP之类的解决方案,但不要尝试使用MemoryStream/byte[]

如何将文件从内存流上载到SFTP服务器。本地路径不可用,因为我正在从azure blob上载文件。我得到的信息是.NET不支持SFTP协议,因此尝试了第三方DLL,如“SharpSSH”、“Routrek.granados”和“WinSCP”。但是没有一个适合我的场景。put方法中不支持ie bite[]或stream

有人能给我推荐一些适合我的情况的免费DLL吗?或者我能处理这个问题的方法


提前感谢。

您可以继续使用WinSCP之类的解决方案,但不要尝试使用MemoryStream/byte[],只需先在本地下载文件即可:

var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("temp");
var blob = container.GetBlobReferenceFromServer("myblob.zip");

// This assumes you're using a Cloud Service and have a local resource called files
var dropFolder = RoleEnvironment.GetLocalResource("files").RootPath;
var filePath = Path.Combine(dropFolder, "myblob.zip");

// Download blob to a local resource first.
using (var fs = new FileStream(filePath, FileMode.Create))
{
    blob.DownloadToStream(fs);
}

var proc = new Process();
proc.StartInfo.FileName = "winscp.com";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
proc.StandardInput.WriteLine("option batch abort");
proc.StandardInput.WriteLine("option confirm off");
proc.StandardInput.WriteLine("open mysession");
proc.StandardInput.WriteLine("ls");
proc.StandardInput.WriteLine("put " + filePath);
proc.StandardInput.Close();

我不知道免费软件,但我们的SecureBackbox可以处理流,包括内存流。免费软件是严格要求吗?一些商业SFTP LIB支持从流上传,例如从Eldos或Rebex SFTP上传。以下链接显示如何使用我们的库执行此操作: