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.18.8"
unftp-sbe-gcs = "0.2.2"
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

The Metadata for the CloudStorage
Contains code pertaining to initialization options for the Cloud Storage Backend

Structs

A StorageBackend that uses Cloud storage from Google. cloned for each controlchan!

Traits

Extension trait purely for construction convenience.