【问题标题】:SFTP download with pysftp put fails with "FileNotFoundError: [Errno 2] No such file or directory"使用 pysftp put 进行 SFTP 下载失败并显示“FileNotFoundError: [Errno 2] No such file or directory”
【发布时间】:2022-01-19 17:41:53
【问题描述】:

我正在尝试通过 Airflow 自动从 SFTP 服务器传输文件,但我遇到了一个问题,我无法将文件保存到根文件夹以外的任何地方。

这是我的代码的 sn-p:

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection(host=myHostname, username=myUsername, password=myPassword,     private_key=".ppk",
 cnopts=cnopts) as sftp:
     print("Connection succesfully stablished ... ")
     # Obtain structure of the remote directory '/var/www/vhosts'
     directory_structure = sftp.listdir_attr()
     #Download data
     for attr in directory_structure:
         if datetime.fromtimestamp(attr.st_mtime) >= datetime.strptime("2022-01-18", "%Y-%m-%d"):
             sftp.put(attr.filename,"/volume1/homes/[myuser]/Recordings/{a}".format(a=attr.filename))

当我运行这个 DAG 时,我收到以下错误

FileNotFoundError: [Errno 2] 没有这样的文件或目录:

任何有关如何解决此问题的建议将不胜感激。

【问题讨论】:

    标签: python airflow sftp paramiko pysftp


    【解决方案1】:

    Paramiko SFTPClient.put 用于上传

    如果你想下载,你必须使用SFTPClient.get

    sftp.get(attr.filename,"/volume1/homes/[myuser]/Recordings/{a}".format(a=attr.filename))
    

    强制警告:不要设置cnopts.hostkeys = None,除非你不关心安全性。有关正确的解决方案,请参阅Verify host key with pysftp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-06
      • 2022-01-24
      • 1970-01-01
      • 2018-03-07
      • 1970-01-01
      • 2012-08-25
      • 2019-10-14
      • 1970-01-01
      相关资源
      最近更新 更多