2012-12-13 3 views
1

나는이 URL로 이동합니다 압축을 풉니 다 : http://autospace.by/download/prices.zip자동으로 웹 URL에서 우편 번호를 취득하고

그리고 내 레일 응용 프로그램이 파일의 압축을 풀고,하지만 난 매일마다 오후 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라는 (파일 이름)에 PARAM이 파일 이름을 보낼 수 있습니까? 또한 매일 자동으로이 작업을 수행하는 방법에 대한 조언을 제공합니까?

답변

2

직접 리눅스 압축 명령을 system "cd #{Rails.root}/#{zip_path}; zip -qr #{zip_file_name}.zip #{zip_file_name};

를 사용하거나 단지의 crontab에서이 스크립트를 실행, 매일이 excute에 원하는 경우 예를 들어, 루비에게 zip 보석

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') 

을 사용할 수 있습니다

`*/5 * * * * /usr/local/bin/ruby /local/myuser/rubyscript/ftpscript.rb >> /local/myuser/rubyscript/ftplog.txt` 
+0

gem 'archive-zip'이 코드를 어떻게 작성합니까? – byCoder

+0

당신의 teminate에서'gem "archive-zip"을 실행하고 스크립트에'require 'archive/zip''를 추가하십시오. –

+0

어떻게 파일 이름을 얻을 수 있습니까? 그것은 13-12 이름, 14-12 이름 등 수 ... 만약 내가 그것을 보내야합니다; 이름을 방법 – byCoder

관련 문제