我需要转到这个网址: http://autospace.by/download/prices.zip
并将此文件解压缩到我的rails应用程序,但我必须每天下午2点进行,主要的麻烦是,其他url的档案文件每天都在更改名称,所以我必须解压缩文件,名称结束哪个是,并用它做一些操作?
我现在的代码:
require 'net/http'
Net::HTTP.start("autospace.by") do |http|
resp = http.get("/download/prices.zip")
open(Rails.root.join('public', 'uploads_prices', "autospace.zip"), "wb") do |file|
file.write(resp.body)
end
end
所以:如何在此网址上解压缩文件,并将此文件名作为参数发送给方法mymethod(filename)?并且还会每天自动提供建议:
答案 0 :(得分:2)
你可以直接使用linux zip命令system "cd #{Rails.root}/#{zip_path}; zip -qr #{zip_file_name}.zip #{zip_file_name};
或使用ruby zip gems
gem 'archive-zip' # Use require_gem for rubygems versions older than 0.9.0.
require 'archive/zip'
# Add a_directory and its contents to example1.zip.
Archive::Zip.archive('example1.zip', 'a_directory')
如果你想每天都执行此操作,只需在crontab中运行此脚本,例如
`*/5 * * * * /usr/local/bin/ruby /local/myuser/rubyscript/ftpscript.rb >> /local/myuser/rubyscript/ftplog.txt`