保留Paramiko的时间戳

Jim*_*Jim 6 python sftp paramiko filemtime

当使用Paramiko从一台服务器到另一台服务器的SFTP文件时,是否有一种方法可以保留时间戳,类似于-pLinux中的参数?

原始档案:

jim@vm3634:~$ ls -la
-rwxrwx---    1 jim  admin    2214 Mar 30 17:33 compcip.asc
Run Code Online (Sandbox Code Playgroud)

上传的文件:

sftp> ls -la
-rwxrwx---    1 no-user  no-group    2214 Mar 30 18:49 compcip.asc
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ryl 7

帕拉米科不支持这一点.

您必须SFTPClient.utime在上传后明确调用.


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

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

local_stat = os.stat(localpath)
times = (local_stat.st_atime, local_stat.st_mtime)

sftp.put(localpath, remotepath)

sftp.utime(remotepath, times)
Run Code Online (Sandbox Code Playgroud)

同样适用于下载.