C# 如何从Azure网站连接远程SFTP计划作业

C# 如何从Azure网站连接远程SFTP计划作业,c#,sftp,azure-web-app-service,azure-webjobs,winscp,C#,Sftp,Azure Web App Service,Azure Webjobs,Winscp,我有一个控制台应用程序,它将被安排为AZURE网站中的作业。 从该控制台应用程序中,我想连接远程SFTP并获取所有文件,并将其保存在AZURE网站内的我的文件夹中。如果可能,还可以在传输后将其从SFTP中删除。首先,在这种情况下使用的最佳免费选项是 你可以从 让我们开始这是函数: public static void GetSftp(string host, string user, string password, int port, string source, string dest, s

我有一个控制台应用程序,它将被安排为AZURE网站中的作业。
从该控制台应用程序中,我想连接远程SFTP并获取所有文件,并将其保存在AZURE网站内的我的文件夹中。如果可能,还可以在传输后将其从SFTP中删除。

首先,在这种情况下使用的最佳免费选项是

你可以从

让我们开始这是函数:

public static void GetSftp(string host, string user, string password, int port, string source, string dest, string remoteDest)
    {

        Directory.CreateDirectory(dest);
        var winScpSessionOptions = new SessionOptions
        {
            HostName = host,
            Password = password,
            PortNumber = port,
            UserName = user,
            Protocol = Protocol.Sftp,
            GiveUpSecurityAndAcceptAnySshHostKey = true
        };

        var session = new Session();
        session.Open(winScpSessionOptions);

        var remoteDirInfo = session.ListDirectory(remoteDest);
        foreach (RemoteFileInfo fileInfo in remoteDirInfo.Files)
        {
            if (fileInfo.Name.Equals(".") || fileInfo.Name.Equals("..")) { continue; }
            Console.WriteLine("{0}", remoteDest + fileInfo.Name);
            try
            {

                var x = remoteDest +"/"+ fileInfo.Name;
                var y = dest +"\\"+ fileInfo.Name; 

                var result = session.GetFiles(x, y);

                if (!result.IsSuccess)
                {

                }
                else
                {
                    session.RemoveFiles(remoteDest +"/"+ fileInfo.Name);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

        }

    }
这个函数的作用是什么? 它只需获取SFTP凭据并登录到SFTP。并列出所有文件名。在删除传输的文件后,将每个文件保存在AZURE网站ftp中

  • 源是SFTP文件夹
  • 您要从SFTP传输文件的目标。在AZURE网站中,它看起来像这样的D:\home\site\wwwroot\YourFolderName
1)请不要建议使用测试版。始终使用最新稳定版本的WinSCP。2) 请注意,您使用的是WinSCP.NET程序集,而不仅仅是WinSCP。3) 除非你不关心安全性,并且你真的知道你在做什么,否则不要设置。见我的文章。