Crate unftp_sbe_gcs

source ·
Expand description

An storage back-end for libunftp that let you store files in Google Cloud Storage.

Usage

Add the needed dependencies to Cargo.toml:

[dependencies]
libunftp = "0.19.1"
unftp-sbe-gcs = "0.2.5"
tokio = { version = "1", features = ["full"] }

And add to src/main.rs:

use libunftp::Server;
use unftp_sbe_gcs::{ServerExt, options::AuthMethod};
use std::path::PathBuf;

#[tokio::main]
pub async fn main() {
    let server = Server::with_gcs("my-bucket", PathBuf::from("/unftp"), AuthMethod::WorkloadIdentity(None))
      .greeting("Welcome to my FTP server")
      .passive_ports(50000..65535);

    server.listen("127.0.0.1:2121").await;
}

This example uses the ServerExt extension trait. You can also call one of the other constructors of Server e.g.

use libunftp::Server;
use unftp_sbe_gcs::{CloudStorage, options::AuthMethod};
use std::path::PathBuf;

#[tokio::main]
pub async fn main() {
    let server = libunftp::Server::new(
        Box::new(move || CloudStorage::with_bucket_root("my-bucket", PathBuf::from("/ftp-root"), AuthMethod::WorkloadIdentity(None)))
      )
      .greeting("Welcome to my FTP server")
      .passive_ports(50000..65535);

    server.listen("127.0.0.1:2121").await;
}

Modules

Structs

Traits

  • Extension trait purely for construction convenience.