Sample code for 30+ languages & platforms
Rust

Inovis VAN FTP/SSL (EDI)

See more FTP Examples

Demonstrates how to connect to the Inovis EDI VAN (FTP/SSL).

Chilkat Rust Downloads

Rust

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

let ftp = chilkat::Ftp2::new();

ftp.set_hostname("ftpssl.gateway.inovisworks.net");
ftp.set_username("myLogin");
ftp.set_password("myPassword");

// The Inovis EDI VAN requires Passive connections:
ftp.set_passive(true);

// Note: The Inovis documentation mentions an outbound
// high port range of 40000-49999.  In passive mode, the
// FTP server chooses the port number for the data
// connection.  The Inovis server will choose a port number
// in the range 40000-49999.  To establish the data connection,
// your firewall must allow outgoing connections in that port
// range. 

// This tells Chilkat FTP2 to establish
// an AUTH TLS secure channel after connecting
// on the standard FTP port 21.
ftp.set_auth_tls(true);

// You'll probably need this property set to true if you're
// behind a NAT router or firewall.
ftp.set_passive_use_host_addr(true);

// The Ssl property is for establishing an implicit SSL connection
// on port 990.  Do not set it to true.  The Inovis VAN
// uses explicit encryption (SSL/TLS).
ftp.set_ssl(false);

// The Chilkat FTP component automatically sends a "FEAT";
// command after connecting.  This allows the component
// to better know the FTP server's capabilities.
// The Invois server doesn't recognize the FEAT command,
// so disable it:
ftp.set_auto_feat(false);

// Connect, convert to TLS, and login to the FTP server.
if ftp.connect().is_err() {
    println!("{}", ftp.last_error_text());
    return;
} else {
    // LastErrorText contains information even when
    // successful. This allows you to visually verify
    // that the secure connection actually occurred.
    println!("{}", ftp.last_error_text());
}

println!("Connection to Inovis EDI VAN OK!");

// Do whatever you're doing to do ...
// upload files, download files, etc...

let _ = ftp.disconnect().is_ok();