C# 将Azure blob直接上载到SFTP服务器而无需中间文件

C# 将Azure blob直接上载到SFTP服务器而无需中间文件,c#,.net,sftp,azure-blob-storage,ssh.net,C#,.net,Sftp,Azure Blob Storage,Ssh.net,我正在尝试将am Azure blob直接上载到SFTP服务器 从本地位置上载文件很简单: using (var sftp = new SftpClient(connectionInfo)){ sftp.Connect(); using (var uplfileStream = System.IO.File.OpenRead(fileName)){ sftp.UploadFile(uplfileStream, fileName, true); }

我正在尝试将am Azure blob直接上载到SFTP服务器

从本地位置上载文件很简单:

using (var sftp = new SftpClient(connectionInfo)){
    sftp.Connect();
    using (var uplfileStream = System.IO.File.OpenRead(fileName)){
        sftp.UploadFile(uplfileStream, fileName, true);
    }
    sftp.Disconnect();
}
有没有办法将blob从blob存储直接复制到SFTP服务器

  • SftpClient.UploadFile结合使用

     using (var blobReadStream = blockBlob.OpenRead())
     {
         sftp.UploadFile(blobReadStream, remotePath, true);
     }
    
  • 或将
    SftpClient.与以下内容组合创建

  • 第一种方法在SFTP方面应该更快,因为与由
    SftpClient.Create
    返回的
    SftpFileStream
    相比,
    SftpClient.UploadFile
    得到了优化

     using (var sftpWriteStream = sftp.Create(remotePath))
     {
         blockBlob.DownloadToStream(sftpWriteStream);
     }