繁体   English   中英

是否可以从C#同时将文件上传到同一服务器上的两个SFTP文件夹?

[英]Is it possible to upload a file to two SFTP folders on same server at the same time from C#?

我正在将SSH.NET库用于SFTP。 我需要将文件上传到同一台服务器上的两个文件夹中,但是该文件会很大,所以我宁愿不通过电线两次发送它。

一旦数据存储在服务器上,是否有命令从一个文件夹复制到下一个文件夹? 还是可以同时上传而不必通过网络发送相同数据的两个副本?

您可以使用Powershell FileSystemWatcher之类的工具监视其中一个文件夹中的更改。 然后,在该文件夹中添加了新文件后,您可以触发操作(例如Robocopy)并将该文件复制到另一个文件夹中。

您可能将无法直接复制文件。 有关原因的详细信息,请参见:
在SFTP会话中,是否可以将一个远程文件复制到同一远程SFTP服务器上的另一个位置?

如果您具有外壳程序访问权限,则当然可以使用外壳程序会话执行cp命令。
请参阅如何在C#中的SSH服务器上运行命令?


通过SFTP复制远程文件的唯一可靠的方法是下载并重新上传文件。

最简单的方法(不创建临时本地文件)是:

SftpClient client = new SftpClient("example.com", "username", "password");
client.Connect();

using (Stream sourceStream = client.OpenRead("/source/path/file.dat"))
using (Stream destStream = client.Create("/dest/path/file.dat"))
{
    sourceStream.CopyTo(destStream);
}

但是我知道这不是您要追求的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM