上传到SFTP时保留文件的修改时间戳

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

在将文件上传到SFTP站点时,我需要保留文件的修改后的时间戳。

我正在使用com.enterprisedt.net.ftp.ssh.SSHFTPclient进行传输。

请让我知道是否有办法。

java sftp edtftpj
2个回答
0
投票

上传后呼叫SSHFTPClient.setModTime

SSHFTPClient.setModTime

0
投票

让我知道是否有办法。

在传输文件时,没有办法保留时间戳。 SFTP协议不允许它。

SFTP有线协议规范文档从未完成和批准,但是(协议的第6版)最草稿是sshFtpClient.setModTime(remotePath, new Date(new File(localPath).lastModified());

[如果您查看第8.1和8.2节,您将看到客户端请求打开文件(SSH_FXP_OPEN)和写入文件(SSH_FXP_WRITE)的请求不会将任何时间戳信息从客户端传递到服务器。由于请求未传递时间戳,因此无法将其保留在传输中。

如果要“保留”时间戳,则协议文档说客户端需要发送SSH_FXP_SETSTAT或SSH_FXP_FSETSTAT请求以更新相关文件属性。

我尚未检查,但我相信这也适用于该协议的早期版本。

请注意,使用哪种SFTP客户端或服务器都没有关系。限制在协议中。

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