尝试将Pyftpsync连接到端口22上的远程服务器时出现EFOError

时间:2019-05-29 04:22:40

标签: python ftp pyftpsync

我正在尝试通过FTP同步两个文件夹,是的,我知道有更好的方法或不同的方法,但是现在我需要以这种方式实现它,我正在尝试pyftpsync的示例代码,因为很好,示例代码应该很容易工作对?我只是想在我制作的一些测试文件夹之间建立连接,一个是空的(本地),而遥控器只有一个我要提取的文本文件。它会尝试连接,但是大约2分钟后,我收到此错误。

好吧,我的FTP确实在python之外工作。我可以通过winSCP进行连接。

一些地方提到代理可能会导致这种情况,但是似乎我目前没有落后于代理,但是也许我没有正确设置代理,并且认为应该以某种方式存在代理?

无论如何,任何可能的故障排除想法都会有所帮助。谢谢

这是我的代码,仅在pyftpsync提示符下使用命令会对我产生相同的错误。因此,可能是某些输入参数已关闭导致所有这一切。

import time
import os
import re
import shutil
import string
import sys

from ftpsync.targets import FsTarget
from ftpsync.ftp_target import FtpTarget 
from ftpsync.synchronizers import DownloadSynchronizer

#synchronize a local folder with ftp

local = FsTarget( "C:\\testfolder\\"  ) 
user = "login"
passwd = "password"
remote = FtpTarget("/my/folder/location/testfold/", "126.0.0.1",port=22, username=user,password=passwd,tls=False,timeout=None,extra_opts=None)
opts = {}
s=DownloadSynchronizer(local, remote, opts)
s.run()

这是我得到的输出,我已经编辑了文件夹名称和IP地址。

INFO:keyring.backend:Loading KWallet
INFO:keyring.backend:Loading SecretService
INFO:keyring.backend:Loading Windows
INFO:keyring.backend:Loading chainer
INFO:keyring.backend:Loading macOS
INFO:pyftpsync:Download to C:\testfolder
                from ftp://126.0.0.1/.../testfold
INFO:pyftpsync:Encoding local: utf-8, remote: utf-8
Traceback (most recent call last):
  File "c:\..\.py", line 30, in <module>
    s.run()
  File "C:\\AppData\Local\Programs\Python\Python37-32\lib\site- 
packages\ftpsync\synchronizers.py", line 1268, in run
  res = super(DownloadSynchronizer, self).run()
  File "C:\\AppData\Local\Programs\Python\Python37- 
  32\lib\site-packages\ftpsync\synchronizers.py", line 827, in run
  res = super(BiDirSynchronizer, self).run()
  File "C:\\AppData\Local\Programs\Python\Python37- 
  32\lib\site-packages\ftpsync\synchronizers.py", line 211, in run
  self.remote.open()
  File "C:\\AppData\Local\Programs\Python\Python37- 
  32\lib\site-packages\ftpsync\ftp_target.py", line 141, in open
  self.ftp.connect(self.host, self.port)
  File "C:\\AppData\Local\Programs\Python\Python37- 
  32\lib\ftplib.py", line 155, in connect
  self.welcome = self.getresp()
  File "C:\\Local\Programs\Python\Python37- 
  32\lib\ftplib.py", line 236, in getresp
  resp = self.getmultiline()
  File "C:\\AppData\Local\Programs\Python\Python37- 
  32\lib\ftplib.py", line 226, in getmultiline
  nextline = self.getline()
  File "C:\\AppData\Local\Programs\Python\Python37- 
  32\lib\ftplib.py", line 210, in getline
  raise EOFError
  EOFError

1 个答案:

答案 0 :(得分:1)

Pyftpsync使用FTP协议。

您正在连接到用于SSH / SFTP的端口22。

因此,如果您的服务器实际上是SFTP服务器,而不是FTP服务器,则不能对其使用Pyftpsync。