Дайте мне знать, если есть какой-либо способ.
Нет способа сохранить метки времени при передаче файла. Протокол SFTP не допускает этого.
Документы спецификации протокола проводного SFTP никогда не были заполнены и ратифицированы, но самый черновой вариант (для версии 6 протокола) - draft-ietf-se c sh -filexfer-13 .
Если вы посмотрите на разделы 8.1 и 8.2, вы увидите, что клиент запрашивает открытие файла (SSH_FXP_OPEN
) и запись файла (SSH_FXP_WRITE
) не передавать информацию о метках времени от клиента на сервер. Поскольку запрос не передает отметки времени, они не могут быть сохранены при передаче.
Если вы хотите «сохранить» отметку времени, в документе протокола говорится, что клиент должен отправить SSH_FXP_SETSTAT
или * 1016. * запрос на обновление соответствующих атрибутов файла.
Ответ Мартина содержит код для этого с использованием библиотеки SSHFTPClient
.
Я не проверял, но уверен что это относится и к более ранним версиям протокола SFTP.