Ftp下载工具类

 

插件 CoreFtp,问题:LoginAsync每次登录会花费很长时间(20+秒),优化为单例模式,链接一直存在,无需每次登录

 public class FTPHelper
    {
        private readonly static FtpClient ftpClient = null;
        static FTPHelper()
        {
            ftpClient = new FtpClient(FTPHelperConfig.FtpClientConfiguration);
        }
        public static async Task FTPUpload(string filename, IFormFile file)
        {
            if (!ftpClient.IsConnected)
                await ftpClient.LoginAsync();
            using (var writeStream = await ftpClient.OpenFileWriteStreamAsync(filename))
            {
                var fileReadStream = file.OpenReadStream();
                await fileReadStream.CopyToAsync(writeStream);
            }
        }
    }

startup中ConfigureServices中赋值

FTPHelperConfig.FtpClientConfiguration = new CoreFtp.FtpClientConfiguration
            {
                Host = Configuration["FtpUpload:hostname"],// "10.0.103.126",
                Username = Configuration["FtpUpload:username"],//"zrhftp",
                Password = Configuration["FtpUpload:password"],//"zrh2019",
                BaseDirectory = Configuration["FtpUpload:targetDir"]//"/ftp_data/data/www/imageserve"
            };

 

posted @ 2020-05-27 09:07  wjl910  阅读(149)  评论(0)    收藏  举报