Reputation: 60731
I'm attempting to upload am Azure blob directly to an SFTP server.
It's simple to upload a file from a local location:
using (var sftp = new SftpClient(connectionInfo)){
sftp.Connect();
using (var uplfileStream = System.IO.File.OpenRead(fileName)){
sftp.UploadFile(uplfileStream, fileName, true);
}
sftp.Disconnect();
}
Is there a way to copy blobs from blob storage directly to an SFTP server?
Upvotes: 2
Views: 3016
Reputation: 202271
Either combine CloudBlob.OpenRead
with SftpClient.UploadFile
:
using (var blobReadStream = blockBlob.OpenRead())
{
sftp.UploadFile(blobReadStream, remotePath, true);
}
Or combine SftpClient.Create
with CloudBlob.DownloadToStream
:
using (var sftpWriteStream = sftp.Create(remotePath))
{
blockBlob.DownloadToStream(sftpWriteStream);
}
The first approach should be a way faster in SFTP terms, as SftpClient.UploadFile
is optimized, comparing to the SftpFileStream
returned by SftpClient.Create
.
Upvotes: 1