using System.IO;
using Renci.SshNet;
namespace ssh
{
/// <summary>
/// Класс для запуска выполнения скрипта
/// </summary>
public class Program : IZennoExternalCode
{
/// <summary>
/// Метод для запуска выполнения скрипта
/// </summary>
/// <param name="instance">Объект инстанса выделеный для данного скрипта</param>
/// <param name="project">Объект проекта выделеный для данного скрипта</param>
/// <returns>Код выполнения скрипта</returns>
public int Execute(Instance instance, IZennoPosterProjectModel project)
{
string pathToFiles = "";// путь к папке с файлами;
string host = "";// хост ssh;
int port = 22; // порт
string user = ""; // имя пользователя
string password = ""; // пароль
SendFilesToServer.Send(pathToFiles, host, port, user, password, "полный путь к удалённой директории");
return 1;
}
}
public static class SendFilesToServer
{
public static void Send(string pathToFiles, string host, int port, string user, string password, string remoteDir = "/")
{
using (var sftp = new SftpClient(host, port, user, password))
{
string[] files = Directory.GetFiles(pathToFiles);
sftp.Connect();
sftp.ChangeDirectory(remoteDir);
foreach (string filePath in files)
{
using (var uplfileStream = System.IO.File.OpenRead(filePath))
{
sftp.UploadFile(uplfileStream, Path.GetFileName(filePath), true);
}
}
sftp.Disconnect();
}
}
}
}