unftp-sbe-gcs

Crates.iounftp-sbe-gcs
lib.rsunftp-sbe-gcs
version0.2.6
sourcesrc
created_at2021-03-26 21:55:52.004852
updated_at2024-05-16 22:01:40.392667
descriptionA storage back-end for libunftp, storing files in Google Cloud Storage (GCS)
homepagehttps://github.com/bolcom/libunftp/tree/master/crates/unftp-sbe-gcs
repositoryhttps://github.com/bolcom/libunftp/tree/master/crates/unftp-sbe-gcs
max_upload_size
id373965
size130,208
unFTP (github:bolcom:unftp)

documentation

https://docs.rs/unftp-sbe-gcs

README

unftp-sbe-gcs

Crate Version API Docs Crate License Follow on Telegram

An storage back-end for libunftp that let you store files in Google Cloud Storage. Please refer to the documentation and the examples directory for usage instructions.

Usage

Add the needed dependencies to Cargo.toml:

[dependencies]
libunftp = "0.20.0"
unftp-sbe-gcs = "0.2.6"
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;
}

The above 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;
}

For more usage information see the examples directory and the libunftp API documentation.

Getting help and staying informed

Support is given on a best effort basis. You are welcome to engage us on Github the discussions page or create a Github issue.

You can also follow news and talk to us on Telegram

License

You're free to use, modify and distribute this software under the terms of the Apache License v2.0.

Commit count: 669

cargo fmt