我正在尝试将Azure 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服务器?
答案 0 :(得分:1)
将CloudBlob.OpenRead
与SftpClient.UploadFile
组合在一起:
$request->request->all()
或将SftpClient.Create
与CloudBlob.DownloadToStream
组合:
using (var blobReadStream = blockBlob.OpenRead())
{
sftp.UploadFile(blobReadStream, remotePath, true);
}
与using (var sftpWriteStream = sftp.Create(remotePath))
{
blockBlob.DownloadToStream(sftpWriteStream);
}
返回的SftpClient.UploadFile
相比,第一种方法应该是使用SFTP术语的方法,因为SftpFileStream
得到了优化。