婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ruby ftp封裝實例詳解

ruby ftp封裝實例詳解

熱門標(biāo)簽:開封百應(yīng)電銷機(jī)器人聯(lián)系方式 樂昌電話機(jī)器人 真人語音電銷機(jī)器人系統(tǒng) 邯鄲外呼調(diào)研線路 浦東上海400開頭的電話申請 買了外呼系統(tǒng)不想用了怎么辦 北京語音電銷機(jī)器人價格 電話機(jī)器人電話卡封號怎么辦 武漢呼叫中心外呼系統(tǒng)線路商

 ruby ftp封裝實例詳解

最近自己用ruby 封裝了一個Net::FTP的工具類.

class FtpTool

 def initialize()

  @current_ftp = create_ftp

 end

 

  # 獲取指定格式的文件名稱列表

  # 例如: source = "test/*.txt"

  # 返回: [source/file_name.txt]

 def fetch_remote_filenames(source)

  return [] if source.blank?

  log_info("source is " + source)

  filenames = @current_ftp.nlst(source)

  filenames

 end

   # 獲取服務(wù)器上確切名稱的文件

  # 例如: get("test/test.txt")

  # 文件將被保存到本地 tmp/test/test.txt

 def get(origin_file)

  local_file = local_file(origin_file)

  local_file.gsub("\\", "\\\\") #此處注意是window下執(zhí)行, 在linux下需要注意改成/

  log_info("Ftp Get: #{origin_file} -> #{local_file}")

  begin

   @current_ftp.getbinaryfile(origin_file, local_file+".tmp")

  rescue

   delete_local_file(local_file+".tmp")

  end

  rename_local_file(local_file+".tmp", local_file) if File.exist?(local_file+".tmp")

 end

   # 上傳文件到指定的路徑

  # 例如: put("tmp\\test\\test.txt", "/test/")

def put(origin_file, remote_path)

  return nil if not File.exist?(origin_file)

  _file_name = File.basename(origin_file)

  _root = @current_ftp.getdir

  @current_ftp.chdir(remote_path)

  log_info("Ftp put: #{origin_file} -> #{remote_path}")

  begin

   @current_ftp.putbinaryfile(origin_file, remote_path + _file_name + ".tmp")

  rescue

   delete(remote_path + _file_name + ".tmp")

  end

  @current_ftp.chdir(_root)

  rename(remote_path + _file_name + ".tmp", remote_path + _file_name)

 end

 

  # 關(guān)閉ftp

 def close

  @current_ftp.close if @current_ftp

 end

 

  # 服務(wù)器copy文件 

 def copy(origin_file, file_path)

  local_file = local_file(origin_file)

  _file_name = File.basename(origin_file)

  begin

      #1. 到本地    

 log_info("FTP get file to:" + local_file+".tmp")

   @current_ftp.getbinaryfile(origin_file, local_file+".tmp")

   return nil if not File.exist?(local_file+".tmp")

      #2. 到服務(wù)器   

  log_info("FTP put file to :" + file_path + _file_name + ".tmp")

   @current_ftp.putbinaryfile(local_file+".tmp", file_path + _file_name + ".tmp")

   #3. 改名字

   rename(file_path + _file_name + ".tmp", file_path + _file_name)

   #5. 刪除本地

   delete_local_file(local_file + ".tmp")

  rescue => e

   log_info(e)

   #4. 刪除服務(wù)器上臨時文件

   delete(file_path + origin_file + ".tmp")

   #5. 刪除本地

   delete_local_file(local_file + ".tmp")

  end

 end

   # 服務(wù)器上移動文件

 def move(origin_file, file_path)

  _file_name = File.basename(origin_file)

  begin

   copy(origin_file, file_path)

   # 刪除服務(wù)器上源文件

   delete(origin_file)

  rescue => e

   log_info(e)

   # 刪除臨時文件,如果存在

   delete(file_path + _file_name + ".tmp")

   # 刪除服務(wù)器上目標(biāo)文件, 如果存在

   delete(file_path + _file_name)

  end

 end

   # 重命名服務(wù)器文件

 def rename(origin_file, file)

  if not @current_ftp.list(origin_file).blank?

   log_info("FTP rename #{origin_file} to #{file}")

   @current_ftp.rename(origin_file, file)

  end

 end

 

  # 刪除服務(wù)器上的文件

 def delete(origin_file)

  if not @current_ftp.list(origin_file).blank?

   log_info("FTP delete #{origin_file}")

   @current_ftp.delete(origin_file)

  end

 end

 

 # ftp 是否關(guān)閉

 def closed?

  @current_ftp.closed?

 end

 

 class  self

    # 文件編碼轉(zhuǎn)換

 def convert(src_file, dest_file, from_encode, to_encode )

   log_info("Convert #{src_file} to #{dest_file}")

   cd = Iconv.new(to_encode, from_encode)

   File.open(dest_file, "w") do |out|

    File.open(src_file) do |in_stream|

     in_stream.each_line do |line|

      begin

       new_line = cd.iconv(line)

       out.write(new_line)

      rescue => e

       log_info "convert line error : #{line}"

       next

      end

     end

    end

   end

   cd.close

   dest_file

  end

 end

 

 protected

  #生成ftp

 def create_ftp

  require "net/ftp"

  ftp = Net::FTP.new

  ftp.connect(ftp_host, ftp_port)

  ftp.login(ftp_user, ftp_pwd)

  ftp.passive = ftp_mode

  ftp

 end

 

  #本地路徑

def local_file(file)

  local = File.join("tmp/", file)

  FileUtils.makedirs(File.dirname(local))

  local

 end

 

  # 刪除本地文件 

 def delete_local_file(file)

  if File.exist?(file)

   log_info("delete local file : " + file)

   File.delete(file)

  end

 end

 

  # 重命名本地文件

 def rename_local_file(origin_file, file)

  if File.exist?(origin_file)

   log_info("rename local file : " + origin_file + " to " + file)

   File.rename(origin_file, file)

  end

 end

 

  #初始化參數(shù)

 def ftp_host; "x.x.x.x" end

 def ftp_port; "21" end

 def ftp_user; "x" end

 def ftp_pwd ; "x" end

 def ftp_mode; true end

end

 

您可能感興趣的文章:
  • 使用Ruby實現(xiàn)FTP密碼破解

標(biāo)簽:宜春 河北 自貢 石嘴山 六安 鄂州 淄博 松原

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ruby ftp封裝實例詳解》,本文關(guān)鍵詞  ruby,ftp,封裝,實例,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ruby ftp封裝實例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于ruby ftp封裝實例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    99精品国产视频| 成人av网站在线观看免费| 久久综合色天天久久综合图片| 国产91丝袜在线观看| 玖玖九九国产精品| 麻豆国产精品官网| 久久99精品国产.久久久久久| 国产精品美女久久久久久| 久久色中文字幕| 久久久久久久久岛国免费| 久久久美女毛片| 日韩一级免费观看| 91麻豆精品国产91久久久资源速度| 亚洲一区二区av电影| 国产精品热久久久久夜色精品三区 | 亚洲欧美日韩国产综合| 一卡二卡欧美日韩| 久久精品99国产精品| av在线一区二区三区| 91精品国产aⅴ一区二区| 久久精品免视看| 午夜精品久久久久久久99水蜜桃| 亚洲成人tv网| 国产成人av电影在线播放| 色爱区综合激月婷婷| 久久人人超碰精品| 日本系列欧美系列| 色婷婷综合久久久| 亚洲欧洲99久久| 国产一区二区导航在线播放| 91美女片黄在线观看91美女| 国产日本一区二区| 麻豆精品视频在线观看免费| 欧美亚洲动漫精品| 亚洲精品一卡二卡| 色综合中文字幕国产| 欧美α欧美αv大片| 亚洲精品五月天| av一区二区久久| 亚洲码国产岛国毛片在线| 懂色av一区二区三区免费观看| 日韩精品一区二区三区四区| 午夜精品久久久久久久久| 欧美精品自拍偷拍| 天天影视色香欲综合网老头| 欧美精品视频www在线观看 | 9191成人精品久久| 一二三四区精品视频| 精品视频免费在线| 免费成人av资源网| 久久久久久黄色| 色婷婷久久综合| 国产精品国产三级国产普通话蜜臀| 国产精品亚洲一区二区三区在线| 亚洲国产高清aⅴ视频| 91小视频在线观看| 视频一区视频二区在线观看| 久久色.com| 欧美日韩的一区二区| 麻豆成人久久精品二区三区小说| 精品嫩草影院久久| 成人综合在线观看| 视频一区中文字幕| 中文字幕 久热精品 视频在线 | 不卡一区二区三区四区| 亚洲人123区| 国产精品女主播在线观看| 91精品免费观看| 欧美亚洲另类激情小说| 顶级嫩模精品视频在线看| 日本一区二区不卡视频| 一区二区免费在线播放| 欧美日本一道本在线视频| 国产成人在线观看| 久久精品国产久精国产| 日韩激情在线观看| 亚洲一级不卡视频| 亚洲成人av一区二区| 亚洲午夜一区二区三区| 亚洲综合激情小说| 亚洲精品日韩专区silk| 欧美在线你懂的| 日本美女视频一区二区| 国产精品精品国产色婷婷| 国产婷婷色一区二区三区在线| 欧美xxxxxxxx| 欧美精品一区二区三区很污很色的 | 在线观看成人免费视频| 成人av动漫网站| 国产99久久久精品| www.av亚洲| 91精品一区二区三区在线观看| 欧美伊人久久久久久久久影院| 欧美日韩中文另类| 久久天堂av综合合色蜜桃网| 国产精品成人免费| 美腿丝袜亚洲三区| 国产精品一区二区久久不卡| 91老师片黄在线观看| 欧美大片在线观看一区二区| 亚洲另类春色校园小说| 麻豆91精品视频| 色婷婷av一区二区三区gif | 欧美一激情一区二区三区| 久久婷婷色综合| 久久精品999| 宅男噜噜噜66一区二区66| 亚洲人亚洲人成电影网站色| 久久99精品国产| 欧美精品一区二| 九九国产精品视频| 欧美本精品男人aⅴ天堂| 艳妇臀荡乳欲伦亚洲一区| gogo大胆日本视频一区| 国产日韩av一区二区| 国产凹凸在线观看一区二区 | 久久久久国产一区二区三区四区| 一区二区三区国产豹纹内裤在线| 狠狠色丁香久久婷婷综合_中 | 91老司机福利 在线| 国产精品沙发午睡系列990531| 国产麻豆精品在线| 久久久久国产一区二区三区四区| 蜜桃91丨九色丨蝌蚪91桃色| 精品国产亚洲在线| 国产精品一区二区三区乱码 | 一区二区三区免费| 欧美撒尿777hd撒尿| 日韩精品免费视频人成| 精品国精品国产| 99久久精品情趣| 日韩美女久久久| 欧美色网站导航| 韩国v欧美v日本v亚洲v| 成人欧美一区二区三区白人| 成人中文字幕合集| 亚洲成人av一区二区三区| 精品国产乱子伦一区| 国产精品一线二线三线精华| 欧美极品美女视频| 91黄色免费观看| 狠狠色狠狠色综合日日91app| 国产香蕉久久精品综合网| 色综合天天视频在线观看| 亚洲一级片在线观看| 欧美精品一区在线观看| 色综合 综合色| 成人精品免费视频| 丝袜美腿亚洲综合| 亚洲一区二区3| 国产精品美女久久久久aⅴ| 欧美成人精品3d动漫h| 欧美日韩国产三级| 色狠狠色狠狠综合| av电影天堂一区二区在线观看| 韩日av一区二区| 热久久国产精品| 蜜臀av一区二区| 秋霞av亚洲一区二区三| 日韩av中文字幕一区二区三区| 亚洲一区二区在线免费看| 亚洲午夜一区二区| 一区二区三区免费| 另类欧美日韩国产在线| 日本成人在线电影网| 激情综合一区二区三区| 久久国产精品色| 9色porny自拍视频一区二区| 成人app在线| 337p亚洲精品色噜噜| 欧美变态口味重另类| 中文字幕亚洲精品在线观看| 国产精品蜜臀av| 亚洲香肠在线观看| 国产精品白丝jk白祙喷水网站| 国产精品影视在线观看| 欧美三片在线视频观看| 精品国产乱码久久久久久闺蜜| 亚洲欧洲www| 国产乱一区二区| 欧美蜜桃一区二区三区| 欧美激情一区在线| 久久精品国产在热久久| a美女胸又www黄视频久久| 欧美日韩高清在线| 亚洲日本免费电影| 成人动漫一区二区| 亚洲精品一区二区三区四区高清| 亚洲综合在线电影| 捆绑调教一区二区三区| 欧美亚洲综合色| 亚洲精品你懂的| 91视视频在线观看入口直接观看www | 欧美日韩中文精品| 亚洲一卡二卡三卡四卡无卡久久| 国产不卡视频在线观看| 久久久九九九九| 国产乱国产乱300精品| 国产亚洲精品资源在线26u| 日韩av电影天堂|