Connessione FTP in Rust

Mattepuffo's logo
Connessione FTP in Rust

Connessione FTP in Rust

Per la connessione ad un server FTP in Rust abbiamo varie scelte; ma la libreria che vedremo oggi è di sicuro la più usata: rust-ftp!

Può supportare anche FTPS, ma a me ha dato problemi, quindi non l'ho ancora testata.

Aggiungete questa dipendenza al Cargo.toml:

[dependencies]
ftp = { version = "3.0.1" }

Qui sotto un esempio di codice in cui facciamo queste operazioni:

  • ci connettiamo
  • stampiamo dove siamo
  • ci spostiamo e di nuovo stampiamo dove siamo
  • listiamo tutti i files della directory corrente
  • visualiziamo il contenuto di un file
extern crate ftp;

use std::str;
use std::io::Cursor;
use ftp::FtpStream;

fn main() {
    let mut ftp_stream = FtpStream::connect("ftp.server.it:21").unwrap();
    let _ = ftp_stream.login("USERNAME", "PWD").unwrap();

    println!("Ti trovi in: {}", ftp_stream.pwd().unwrap());

    let _ = ftp_stream.cwd("/DIRECTORY").unwrap();

    println!("Adesso ti trovi in: {}", ftp_stream.pwd().unwrap());

    for file in ftp_stream.list(None).unwrap() {
        println!("{}", file);
    }

    let remote_file = ftp_stream.simple_retr("file.txt").unwrap();
    println!("{}", str::from_utf8(&remote_file.into_inner()).unwrap());

    let _ = ftp_stream.quit();
}

Vi lascio come "compito" quello di eseguire un upload di un file.

Enjoy!


Share this Post

Commentami!