在没有中间文件的情况下将 Azure blob 直接上传到 SFTP 服务器
Uploading a Azure blob directly to SFTP server without an intermediate file
我正在尝试将 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
已优化,与 SftpClient.Create
返回的 SftpFileStream
相比。
我正在尝试将 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
已优化,与 SftpClient.Create
返回的 SftpFileStream
相比。