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