Скачивание по FTP с помощью rust-ftp

Рейтинг: 1Ответов: 1Опубликовано: 15.04.2023

Я использую клиент FTP

В примерах указано, как сохранить текстовый файл в UTF-8. Как можно сохранить бинарный файл? Я так думаю, что нужно его скачать как буффер байт, и потом сохранить этот буфер в файл уже локально. Мне понятен пример скачивания текстового файла, но непонятно, как получить файл, отличный от текстового.

// Retrieve (GET) a file from the FTP server in the current working directory.
let remote_file = ftp_stream.simple_retr("ftpext-charter.txt").unwrap();
println!("Read file with contents\n{}\n", str::from_utf8(&remote_file.into_inner()).unwrap());

Ответы

▲ 2Принят

Вот пример сохранения файла

extern crate ftp;

use ftp::FtpStream;
use std::fs::File;
use std::io::prelude::Write;

fn main() {
    let mut ftp_stream = FtpStream::connect("ftp.otenet.gr:21").unwrap();
    let _ = ftp_stream.login("speedtest", "speedtest").unwrap();
    let remote_file = ftp_stream.simple_retr("test100k.db").unwrap();
    let mut file = File::create("test100k.db").unwrap();
    file.write_all(&remote_file.into_inner()).unwrap();
}