【问题标题】:Uploading a Azure blob directly to SFTP server without an intermediate file将 Azure Blob 直接上传到 SFTP 服务器,无需中间文件
【发布时间】:2019-11-25 16:40:44
【问题描述】:

我正在尝试将 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 服务器?

【问题讨论】:

    标签: c# .net sftp azure-blob-storage ssh.net


    【解决方案1】:
    1. CloudBlob.OpenReadSftpClient.UploadFile 结合起来:

      using (var blobReadStream = blockBlob.OpenRead())
      {
          sftp.UploadFile(blobReadStream, remotePath, true);
      }
      
    2. 或者将SftpClient.CreateCloudBlob.DownloadToStream结合起来:

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-07
      • 2022-01-18
      • 2015-01-16
      • 2016-01-28
      • 2013-12-22
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 2022-11-10
      相关资源
      最近更新 更多