如何在Ruby下载之前获取远程文件的mtime?
发布时间:2020-12-17 03:57:35 所属栏目:百科 来源:网络整理
导读:我有下面的代码,它只是下载文件并保存.我想每隔30秒运行一次并检查远程文件的mtime是否已更改,如果有,则将其下载. 为了这个目的,我将创建一个在无限循环的每次迭代后休眠30秒的线程,但是;如何在不下载的情况下检查远程文件的mtime? Net::HTTP.start($xmlSer
我有下面的代码,它只是下载文件并保存.我想每隔30秒运行一次并检查远程文件的mtime是否已更改,如果有,则将其下载.
为了这个目的,我将创建一个在无限循环的每次迭代后休眠30秒的线程,但是;如何在不下载的情况下检查远程文件的mtime? Net::HTTP.start($xmlServerHostname) { |http| resp = http.get($xmlServerPath+"levels.xml") open("levels.xml","w") { |file| file.write(resp.body) } } 解决方法
在您执行http.get之前,请执行
http.head,它只请求头文件而不下载正文(即文件内容),然后检查Last Modified标头的值是否已更改.
例如 resp = http.head(($xmlServerPath+"levels.xml") last_modified = resp['last-modified'] if last_modified != previous_last_modified # file has changed end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |