我正在开发一个应用程序,我需要使用sftp下载一些文件。我安装了gem net-sftp,它工作得很好。使用我在这个页面上找到的监控进程:http://net-ssh.rubyforge.org/sftp/v2/api/,我可以在我的终端中看到进度。问题是,我想让用户看到在这个过程中发生了什么,在我的用户界面中显示一个进度条,可能还会显示一条监控线。
我试过很多方法,但都不管用。当我进入下载循环时,我不能修改我的任何实例变量,所以我不能保存监控数据来用javascript显示它。alter-filters也不起作用。
我不知道如何在循环中存储信息以便在我的UI中使用它。有什么想法吗?
发布于 2012-07-24 14:15:43
我假设你有类似这样的事情发生...
1. client ----> 'do sftp tranfer' ----> server
2. server ------> 'doing sftp'
3. client <---- 'done sftp' ----------- server简短的答案是,在这种情况下,您不能轻易地向客户端提供进展。
更长的答案是,您必须使用客户端打开some kind of stream才能发送进度。
1. client ----> 'do sftp tranfer' ----> server
2. server ------> 'doing sftp'
3. client <====> 'open stream' <===> server
4. client <---- 'OK' ----------- server这里的技巧是在服务器上执行stream和sftp的两个进程之间进行通信。S
发布于 2015-06-14 23:00:59
我即将跳到类似的东西,我相信这将是我的方法。我目前让服务器访问该位置并下载文件。在这种情况下,我会让服务器每隔5秒检查一次文件的大小,并报告大小。如果你获取文件大小,并在下载开始之前报告它,那么我认为你将能够提供进度。
https://stackoverflow.com/questions/11610768
复制相似问题