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!
ruby ftp net putbnaryfile puttextfile
Commentami!