【问题标题】:Preserve timestamp with Paramiko使用 Paramiko 保留时间戳
【发布时间】:2015-03-31 08:10:14
【问题描述】:

在使用 Paramiko 将文件从一台服务器发送到另一台服务器时,有没有一种方法可以保留时间戳,类似于 Linux 中的 -p 参数?

原始文件:

jim@vm3634:~$ ls -la
-rwxrwx---    1 jim  admin    2214 Mar 30 17:33 compcip.asc

上传文件:

sftp> ls -la
-rwxrwx---    1 no-user  no-group    2214 Mar 30 18:49 compcip.asc

上传的文件需要与原始文件具有相同的时间戳。

【问题讨论】:

    标签: python sftp paramiko filemtime


    【解决方案1】:

    Paramiko 不支持。

    您必须在上传后显式调用SFTPClient.utime


    请注意,pysftp(内部使用 Paramiko)支持使用其pysftp.Connection.put() method 保留时间戳。

    你可以重用他们的实现(我简化的代码):

    local_stat = os.stat(localpath)
    times = (local_stat.st_atime, local_stat.st_mtime)
    
    sftp.put(localpath, remotepath)
    
    sftp.utime(remotepath, times)
    

    downloads 也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2021-11-23
      • 2015-06-14
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2012-12-20
      相关资源
      最近更新 更多