使用 Paramiko 保留时间戳

问题描述 投票:0回答:1

使用 Paramiko 将文件从一台服务器 SFTP 到另一台服务器时,是否有一种方法可以保留时间戳,类似于 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个回答
13
投票

Paramiko 不支持这一点。

上传后您必须显式调用

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)

类似地下载

© www.soinside.com 2019 - 2024. All rights reserved.