SFTP用にSSH.NETライブラリを使用しています。私は同じサーバー上の2つのフォルダにファイルをアップロードする必要がありますが、ファイルは大きくなりますので、電線で2回送信しないでください。同じサーバー上の2つのSFTPフォルダに同時にC#からファイルをアップロードすることはできますか?
データがサーバー上にあると、1つのフォルダから次のフォルダにコピーするコマンドはありますか?または、同じデータの2つのコピーを電線に送信することなく、同時にアップロードすることができますか?
SFTP用にSSH.NETライブラリを使用しています。私は同じサーバー上の2つのフォルダにファイルをアップロードする必要がありますが、ファイルは大きくなりますので、電線で2回送信しないでください。同じサーバー上の2つのSFTPフォルダに同時にC#からファイルをアップロードすることはできますか?
データがサーバー上にあると、1つのフォルダから次のフォルダにコピーするコマンドはありますか?または、同じデータの2つのコピーを電線に送信することなく、同時にアップロードすることができますか?
おそらくファイルを直接コピーすることはできません。詳細については、なぜ、以下を参照してください。
In an SFTP session is it possible to copy one remote file to another location on same remote SFTP server?
を使用すると、シェルアクセスを持っている場合、あなたはもちろん、シェルセッションを使用してcp
コマンドを実行することができます。
は、参照してくださいSFTP経由でリモートのファイルを複製するHow to run commands on SSH server in C#?
ザ・唯一確実に作業方法は、ファイルをダウンロードして再アップロードすることです。
(一時的なローカルファイルを作成せずに)それを行うための最も簡単な方法は次のとおりです。
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);
}
しかし、私は、これはあなたが後にしているものではないことを認識してね。
Powershell FileSystemWatcherのようなものを使用して、いずれかのフォルダの変更を監視できます。その後、そのフォルダに新しいファイルが追加されると、アクション(たとえばRobocopy)をトリガーしてそのファイルを他のフォルダにコピーすることができます。