Commit 7d3f85c2 by Thanh Hung Pham

create module FTP

parent a3e43368
require 'net/ftp'
require 'rubygems' require 'rubygems'
require 'zip'
namespace :import do namespace :import do
desc 'Import CSV' desc 'Import CSV'
task csv: :environment do task csv: :environment do
thread_count = ENV['THREAD_COUNT'] || 1 thread_count = ENV['THREAD_COUNT'] || 1
ftp = Net::FTP.new
ftp.connect('192.168.1.156')
ftp.login('training', 'training')
ftp.passive = true
files = ftp.nlst('*.zip')
path_zip = "#{Rails.root}/lib/tasks/jobs.zip" path_zip = "#{Rails.root}/lib/tasks/jobs.zip"
files.each do |file_name| Utils::Download.new('192.168.1.156', 'training', 'training', path_zip, '*.zip').download_ftp
ftp.getbinaryfile(file_name, path_zip)
end
ftp.close
path_csv = "#{Rails.root}/lib/tasks/jobs.csv" path_csv = "#{Rails.root}/lib/tasks/jobs.csv"
Zip::File.open(path_zip) do |zipfile| Zip::File.open(path_zip) do |zipfile|
......
require 'net/ftp'
require 'zip'
class Utils::Download
attr_reader :url, :user, :password, :path, :file_type
def initialize(url, user, password, path, file_type)
@url = url
@user = user
@password = password
@path = path
@file_type = file_type
end
def download_ftp
ftp = Net::FTP.new
ftp.connect(@url)
ftp.login(@user, @password)
ftp.passive = true
files = ftp.nlst(@file_type)
files.each do |file_name|
ftp.getbinaryfile(file_name, @path)
end
ftp.close
end
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment