我需要保存修改后的时间戳的文件,同时上传到SFTP网站。
我正在使用com.enterprisedt.net.ftp.ssh.SSHFTPclient进行转帐。
如果有什么办法请告诉我。
发布于 2020-02-28 12:07:37
上传后打电话给SSHFTPClient.setModTime。
sshFtpClient.setModTime(remotePath, new Date(new File(localPath).lastModified());发布于 2020-02-28 14:30:26
如果有办法请告诉我。
在传输文件时,无法保存时间戳。SFTP协议不允许这样做。
SFTP线路协议规范文档从未被完成和批准,但大多数草案(对于该协议的版本6)是草案-ietf-secsh-filexfer-13。
如果您查看第8.1节和第8.2节,您将看到客户机请求打开文件(SSH_FXP_OPEN)和写入文件(SSH_FXP_WRITE)时不会将任何时间戳信息从客户端传递到服务器。由于请求没有传递时间戳,因此无法在传输中保留它们。
如果您想“保留”时间戳,协议文档指出客户端需要发送一个SSH_FXP_SETSTAT或SSH_FXP_FSETSTAT请求来更新相关的文件属性。
马丁的回答有使用SSHFTPClient库进行此操作的代码。
我没有检查,但我确信这也适用于SFTP协议的早期版本。
https://stackoverflow.com/questions/60451215
复制相似问题