Сохранить временную метку с помощью Paramiko

Есть ли способ сохранить метку времени при использовании Paramiko для SFTP-файлов с одного сервера на другой, аналогично -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

Загруженный файл должен иметь ту же метку времени, что и оригинал.

1 ответ

Решение

Парамико не поддерживает это.

Вы должны явно назвать 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)

Аналогично для загрузок.

Другие вопросы по тегам