【发布时间】:2020-04-28 21:37:48
【问题描述】:
我使用 net-sftp gem 将文件上传到远程服务器。
Net::SFTP.start(host, user, port: port, key_data: [decoded_key], keys: [], keys_only: true, logger: logger, verbose: :debug) do |sftp|
sftp.upload!(local_file_path, remote_file_path)
end
有时它可以工作并且文件保留在远程 sftp 服务器上。有时它会被下载并很快消失(一两秒后)。我可以通过并行使用 FileZilla 看到它。
有时可以从第一次尝试成功上传一个文件,有时从第二次或第三次尝试上传等等。 如果我手动使用 FileZilla 或从终端使用 sftp,那么一切正常。 成功尝试的调试日志似乎与否相同。没有日志条目表示错误。
宝石版本:
net-ssh (5.2.0)
net-sftp (2.1.2)
如果您对此问题有任何想法,我将不胜感激。
【问题讨论】:
-
如果将文件上传到本地主机而不是远程服务器会怎样?如果它仍然消失,则可能是您的代码、库或客户端存在问题;如果它没有消失,那么远程 SSH 服务器可能存在问题。
-
远程系统上是否有进程删除文件?
-
@Kenster 我不知道,服务器不在我的控制之下。但是如果有这样的过程,那为什么不删除我使用 FileZilla 上传的文件呢?此外,如果文件在下载后(1-2 秒后)仍然存在,那么它不会消失。
-
@anothermh 我想我需要在某个地方找到另一个 sftp 服务器并对其进行测试。
-
@anothermh 谢谢。我这样做了,在新服务器上一切正常。问题出在第一台服务器上。
标签: ruby sftp net-ssh net-sftp