从ASP.NET页面上的SFTP服务器下载文件

时间:2018-06-14 07:31:34

标签: asp.net .net asp.net-web-api sftp

我在Ubuntu 16.04上有SFTP服务器,在ASP Core 2.0上有一个带有REST API的站点。

问题是我想提供服务器上文件的直接链接,但我不知道该怎么做。我想它必须由API完成,但是方式是什么?我可以通过API下载文件并将其提供给用户,但会有两倍的时间(通过API从服务器和用户从API下载)。我在一些网站上看到了一个带有访问令牌的文件链接。可能是我应该用这种方式?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

但会有两次时间

不一定。

您只需使用流API并将数据从输入SFTP流连续传递到输出HTTP流。

以下是FTP的一些示例:

使用SFTP它将是相同的,只需要使用SFTP library(在.NET中没有SFTP支持)而不是FtpWebRequest

特别是SSH.NET library有一个流API。检查其SftpClient.DownloadFile method

public void DownloadFile(string path, Stream output, Action<ulong> downloadCallback = null)

你可以简单地使用它:

sftpClient.DownloadFile(path, Response.OutputStream);