【问题标题】:How to download latest file from SFTP server with Paramiko without using a loop?如何在不使用循环的情况下使用 Paramiko 从 SFTP 服务器下载最新文件?
【发布时间】:2018-01-12 17:38:21
【问题描述】:

我正在尝试在不使用循环的情况下从 SFTP 服务器获取最新文件,因为目录中的文件数量为数千(并且还在增长)。文件名采用以下格式:filename_date.xml(其中filename 可以是任何名称,date 的格式为yyyymmdd_hh.mm.ss)。

根据文档 listdir()listdir_attr() 以任意顺序返回所有文件的列表,因此这没有多大帮助。

编辑: 除上述之外,我无法执行 shell 命令,如果我尝试使用 exec_command 运行脚本,我会得到 This service allows sftp connections only.

【问题讨论】:

标签: python python-3.x sftp paramiko


【解决方案1】:

没有比使用纯 SFTP 协议更好的方法了。

实现示例见:
How to download only the latest file from SFTP server with Paramiko?


您必须使用另一个接口来检索最新文件的名称。

例如,如果您有 shell 访问权限:

或者您可以在返回最新文件名称的服务器上创建Web服务(网页)。

【讨论】:

  • 如果有人控制服务器,可以让它维护一个指向最新文件的符号链接;比设置网页的麻烦要少得多,并且仅通过一个协议保留所有内容(如果我们使用 SFTP 子系统的 SSH 服务器配置为不支持 shellexec 请求,则相关)。
  • 不幸的是我只能运行SFTP命令,尝试执行shell命令返回This service allows sftp connections only.
  • 好的,那么我的第一句话就成立了:“没有比使用纯 SFTP 协议更好的方法了。”
最近更新 更多