簡體   English   中英

使用 SSH.NET 將數據從內存上傳到 SFTP 服務器

[英]Upload data from memory to SFTP server using SSH.NET

我希望直接將 PDF 寫入 SFTP 站點。 PDF 是從ReportExecutionService.Render (SSRS) 生成的。

ReportExecutionService rsExec = new ReportExecutionService();

我已經能夠使用FileStream在本地寫入文件。 我正在生成數百萬個文件,所以我希望使用 SSH.NET 直接在 SFTP 上編寫它們。 使用 SSH.NET 獲取rsExec.Render結果並寫入 SFTP 的語法是什么?

string deviceInfo = null;
string extension;
string encoding;
string mimeType;
ConsoleApp2.ReportExecution2005.Warning[] warnings = null;
string[] streamIDs = null;
string format = "PDF";

Byte[] results =
    rsExec.Render(
        format, deviceInfo, out extension, out mimeType, out encoding,
        out warnings, out streamIDs);
FileStream stream = File.OpenWrite("C:\\test.pdf");
stream.Write(results, 0, results.Length);
stream.Close();

byte數組復制到MemoryStream並使用SftpClient.UploadFile上傳

var client = new SftpClient(host, port, username, password);
client.Connect();
var stream = new MemoryStream();
stream.Write(results, 0, results.Length);
stream.Position = 0;
client.UploadFile(stream, "/remote/path/my.pdf");

盡管大多數庫可以直接使用Stream API。 這將更有效地使用,而不是通過byte[]數組復制數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM