我正在尝试将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服务器?
最佳答案
将CloudBlob.OpenRead
与SftpClient.UploadFile
组合:
using (var blobReadStream = blockBlob.OpenRead())
{
sftp.UploadFile(blobReadStream, remotePath, true);
}
或将
SftpClient.Create
与CloudBlob.DownloadToStream
结合使用:using (var sftpWriteStream = sftp.Create(remotePath))
{
blockBlob.DownloadToStream(sftpWriteStream);
}
第一种方法应该是在SFTP方面更快的方法,因为与
SftpClient.UploadFile
返回的SftpFileStream
相比,SftpClient.Create
已得到优化。关于c# - 无需中间文件即可将Azure Blob直接上传到SFTP服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57065811/