Home / Programmazione / Ruby / Upload FTP in Ruby
Mattepuffo

Upload FTP in Ruby

Upload FTP in Ruby

Dopo aver visto come eseguire una connessione FTP, vediamo come eseguire l' upload di un file.

Partiremo sempre da questa classe, alla quale aggiungeremo un metodo.

La classe Net::FTP di Ruby, ha due metodi per eseguire l'upload:

  • putbnaryfile -> trasferisce in modalità binaria
  • puttextfile -> trasferisce in ASCII

Una o l'altra dipende anche dal file che dovete inviare.

Ecco la classe completa:

require 'net/ftp'

class FtpConnection
    
  def initialize(host, username, password)
    @ftp = Net::FTP.new(host, username ,password)
    @ftp.passive = true
  end
 
  def listFiles
    files = @ftp.list
    puts files
  end
 
  def upload(localFile, remoteFile)
    @ftp.putbinaryfile(localFile, remoteFile)
  end
 
  def close
    @ftp.close
  end
 
end

Il metodo upload richiede due parametri:

  • il path del file locale da inviare
  • il path sul server con il nome per il file da salvare

Così invochiamo il tutto:

require './FtpConnection'

if __FILE__ == $0
  ftp = FtpConnection.new("HOST", "USER", "PWD")
  ftp.upload("/path/to/file.txt", "file_caricato.txt")
  ftp.close()
  puts "Upload finito"
end

Alla fine chiudiamo la connessione.

Enjoy!