Samba Verbindung in Rust
Das Programm verwendet die Rust-Bibliothek pavao, um eine Verbindung zu einem Samba-Dateifreigabe-Server herzustellen. Es testet die Verbindung, indem es versucht, das Wurzelverzeichnis auf dem Server aufzulisten und gibt eine Meldung aus, wenn die Verbindung erfolgreich ist. Dann öffnet es eine Datei auf dem Server und zeigt ihren Inhalt auf der Konsole an. Bei Fehlern wird eine entsprechende Fehlermeldung ausgegeben, und schließlich wird die Verbindung getrennt.
Cargo.toml
[package]
name = "samba-pavao"
version = "0.1.0"
edition = "2021"
[dependencies]
pavao = "0.2.3"
main.rs
// main.rs
use pavao::{SmbClient, SmbCredentials, SmbOpenOptions};
use std::io::Read;
fn main() {
// Samba-Verbindungsinformationen
let server = "smb://samba.server.lan";
let share = "Daten";
let username = "user";
let password = "GEHEIM";
let workgroup = "ARBEITSGRUPPE";
// Verbindung zum Samba-Server herstellen
let client = SmbClient::new(
SmbCredentials::default()
.server(server)
.share(share)
.password(password)
.username(username)
.workgroup(workgroup),
Default::default(),
)
.unwrap();
// Versuchen Sie, das Wurzelverzeichnis aufzulisten, um die Verbindung zu testen
if let Ok(_root_dir) = client.list_dir("/") {
println!("Verbindung zu Samba erfolgreich hergestellt.");
// Datei öffnen und lesen
if let Ok(mut file) = client.open_with("/ordner/test.txt", SmbOpenOptions::default().read(true)) {
let mut buffer = Vec::new();
file.read_to_end(&mut buffer).expect("Failed to read file");
// Drucken Sie den Inhalt der Datei
println!("{}", String::from_utf8_lossy(&buffer));
// Verbindung trennen
drop(file);
} else {
eprintln!("Fehler beim Öffnen der Datei.");
}
} else {
eprintln!("Verbindung zu Samba fehlgeschlagen.");
}
// Verbindung trennen
drop(client);
}