1

我需要去这个网址: 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

那么:我如何在这个 url 上解压缩文件,并将这个文件名作为参数发送到方法 mymethod(filename)?并且还建议如何每天自动执行此操作?

4

1 回答 1

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`
于 2012-12-13T09:52:53.783 回答