我正在尝试使用 WinSCP 通过排除一些常见扩展名(如 .class .gif)下载带有 SCP 协议的文件夹。出于某种原因,WinSCP 忽略了我。文件要么仍在下载(尽管被丢弃),要么以其他方式处理,这需要时间。
我究竟做错了什么?
这是我配置下载的方式:
WinSCP 会话日志的一小部分:
> 2021-02-05 16:03:24.991 scp: error
< 2021-02-05 16:03:25.307 E
. 2021-02-05 16:03:25.307 Sending NULL.
< 2021-02-05 16:03:25.460 T1479214906 0 1612380313 0
. 2021-02-05 16:03:25.460 Sending NULL.
< 2021-02-05 16:03:25.591 C0644 5878 PrinterDetails_jsp.class
. 2021-02-05 16:03:25.591 File "/var/tomcat/tomcat001_xeroxPrinterApp/work/Catalina/xerox/xeroxPrinterApp/org/apache/jsp/WEB_002dINF/views/PrinterDetails_jsp.class" excluded from transfer
. 2021-02-05 16:03:25.591 Sending SCP error (1) to remote side:
> 2021-02-05 16:03:25.591 scp: error
< 2021-02-05 16:03:25.923 T1575667910 0 1612558660 0
. 2021-02-05 16:03:25.923 Sending NULL.
< 2021-02-05 16:03:26.060 D0755 0 plugin
. 2021-02-05 16:03:26.060 File: '/var/tomcat/tomcat001_xeroxPrinterApp/work/Catalina/xerox/xeroxPrinterApp/org/apache/jsp/WEB_002dINF/views' [2019-12-06T21:31:50.000Z] [0]
. 2021-02-05 16:03:26.060 Sending NULL.
< 2021-02-05 16:03:26.209 T1479214910 0 1575366742 0
. 2021-02-05 16:03:26.209 Sending NULL.
< 2021-02-05 16:03:26.345 C0644 8443 HeaderlessPage_jsp.java
. 2021-02-05 16:03:26.345 File: '/var/tomcat/tomcat001_xeroxPrinterApp/work/Catalina/xerox/xeroxPrinterApp/org/apache/jsp/WEB_002dINF/views/plugin' [2016-11-15T13:01:50.000Z] [8443]
. 2021-02-05 16:03:26.345 Sending NULL.
. 2021-02-05 16:03:26.345 Binary transfer mode selected.
. 2021-02-05 16:03:26.492 SCP remote side confirmation (0)
. 2021-02-05 16:03:26.492 Sending NULL.
. 2021-02-05 16:03:26.492 Preserving timestamp [2016-11-15T13:01:50.000Z]
. 2021-02-05 16:03:26.492 Transfer done: '/var/tomcat/tomcat001_xeroxPrinterApp/work/Catalina/xerox/xeroxPrinterApp/org/apache/jsp/WEB_002dINF/views/plugin/HeaderlessPage_jsp.java' => 'C:\temp\xeroxPrinterApp_UPGRADE\work\Catalina\xerox\xeroxPrinterApp\org\apache\jsp\WEB_002dINF\views\plugin\HeaderlessPage_jsp.java' [8443]
< 2021-02-05 16:03:26.645 T1479214910 0 1612380316 0
. 2021-02-05 16:03:26.645 Sending NULL.
< 2021-02-05 16:03:26.777 C0644 6876 HeaderlessPage_jsp.class
. 2021-02-05 16:03:26.777 File "/var/tomcat/tomcat001_xeroxPrinterApp/work/Catalina/xerox/xeroxPrinterApp/org/apache/jsp/WEB_002dINF/views/plugin/HeaderlessPage_jsp.class" excluded from transfer
. 2021-02-05 16:03:26.777 Sending SCP error (1) to remote side:
答案1
您似乎认为 WinSCP 会下载所有文件,甚至是排除的文件,然后以某种方式丢弃它们。但事实并非如此。
看起来您的假设是基于这样一个事实,即处理排除的文件需要一些时间。使用 SCP 协议确实有可能。在文件夹下载方面,SCP 协议的工作方式与 SFTP、FTP、WebDAV 等协议截然不同。
使用其他协议时,客户端 (WinSCP) 会获取文件夹中的文件列表(这是一项批处理操作,当文件夹中有大量文件时,该操作非常有效)。然后,它会挑选感兴趣的文件并向服务器请求这些文件。文件的排除纯粹是本地计算,因此几乎是即时的。
但是使用 SCP 协议,文件夹下载仅由服务器控制。服务器逐个提供文件,客户端必须以交互方式接受/拒绝文件。这是一种对话。特别是如果服务器的延迟很大,对话可能会很耗时。每个文件(即使是排除的文件)都需要一些时间来处理,因为在处理它们时涉及数据交换。
尝试切换到 SFTP 协议。大多数支持 SCP 的服务器也支持 SFTP。对于您的用例,SFTP 应该更高效。