上传到 SFTP 时保留文件的修改时间戳
Preserving modified timestamp of file while uploading to SFTP
我需要在将文件上传到 SFTP 站点时保留修改后的时间戳。
我正在使用 com.enterprisedt.net.ftp.ssh.SSHFTPclient 进行转账。
有什么办法请告诉我。
上传后调用SSHFTPClient.setModTime
。
sshFtpClient.setModTime(remotePath, new Date(new File(localPath).lastModified());
Let me know if there is any way.
传输文件时无法保留时间戳。 SFTP协议不允许。
SFTP 有线协议规范文档从未完成和批准,但大多数草案(协议版本 6)是 draft-ietf-secsh-filexfer-13。
如果你查看第 8.1 和 8.2 节,你会看到客户端请求打开文件 (SSH_FXP_OPEN
) 和写入文件 (SSH_FXP_WRITE
) 不传递任何时间戳从客户端到服务器的信息。由于请求未传递时间戳,因此无法在传输中保留它们。
如果要“保留”时间戳,协议文档说客户端需要发送SSH_FXP_SETSTAT
或SSH_FXP_FSETSTAT
请求来更新相关文件属性。
有使用 SSHFTPClient
库执行此操作的代码。
我没有检查过,但我相信这也适用于早期版本的 SFTP 协议。
我需要在将文件上传到 SFTP 站点时保留修改后的时间戳。
我正在使用 com.enterprisedt.net.ftp.ssh.SSHFTPclient 进行转账。
有什么办法请告诉我。
上传后调用SSHFTPClient.setModTime
。
sshFtpClient.setModTime(remotePath, new Date(new File(localPath).lastModified());
Let me know if there is any way.
传输文件时无法保留时间戳。 SFTP协议不允许。
SFTP 有线协议规范文档从未完成和批准,但大多数草案(协议版本 6)是 draft-ietf-secsh-filexfer-13。
如果你查看第 8.1 和 8.2 节,你会看到客户端请求打开文件 (SSH_FXP_OPEN
) 和写入文件 (SSH_FXP_WRITE
) 不传递任何时间戳从客户端到服务器的信息。由于请求未传递时间戳,因此无法在传输中保留它们。
如果要“保留”时间戳,协议文档说客户端需要发送SSH_FXP_SETSTAT
或SSH_FXP_FSETSTAT
请求来更新相关文件属性。
SSHFTPClient
库执行此操作的代码。
我没有检查过,但我相信这也适用于早期版本的 SFTP 协议。