FTPS慢的问题

Posted xuexiaodong2009

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTPS慢的问题相关的知识,希望对你有一定的参考价值。

之前写过一些FTP的问题,但在公司的FTP修改为FTPS后,发现慢了很多,一直找不到原因。但没有测试环境,只能找其他人测试,后来发现,在FTP修改为FTPS后,创建FTP的目录一层目录就要将近10秒,好几层目录就将近一分钟,实在是有些夸张,只能搜索方案。

一种方案说是 request.Proxy = null;就可以,但测试似乎没有作用。

 private static FtpWebRequest GetFtpWebRequest(FtpInfo info, string url, bool KeepAlive)
        {
            string username = info.userName;
            string password = info.passWord;
            try
            {
                FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
                request.UseBinary = true;
                request.KeepAlive = KeepAlive;
                request.Credentials = new NetworkCredential(username, password);

                request.UsePassive = !info.transferType;//配置的定义和属性的定义刚好相反
                //如果客户端应用程序的数据传输过程侦听数据端口上的连接,则为 false;如果客户端应在数据端口上启动连接,则为 true。 默认值是 true
                LogInfo.Debug("FTP上传文件:UsePassive=" + request.UsePassive);
                if (info.ftps)
                {
                    request.Proxy = null;
                    request.EnableSsl = true;//FTPS需要配置
                    ServicePointManager.ServerCertificateValidationCallback =
                  new RemoteCertificateValidationCallback(ValidateServerCertificate);
                }
                return request;
            }
            catch (Exception e)
            {
                LogInfo.Error("FTP异常:url=" + url + "," + info, e);
                throw e;
            }
        }

后来发现 request.KeepAlive = true;就可以加快速度,原来需要10秒的时间,现在只需要1秒的时间。但测试发现,如果是FTP则request.KeepAlive = true,就很慢,但如果是FTPS,就很快,但代码很简单,底层的原理实在不明白

以上是关于FTPS慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

FTPS慢的问题

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

关于 ftps 服务器的问题 [关闭]

如何在 Spring Boot 中将大文件上传到 ftps 服务器?

使用C#中的代理连接到FTPS

FTPS 中的 989 端口是做啥用的? [关闭]