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.
Add the needed dependencies to Cargo.toml:
toml
[dependencies]
libunftp = "0.19.0"
unftp-sbe-gcs = "0.2.3"
tokio = { version = "1", features = ["full"] }
And add to src/main.rs:
```rust use libunftp::Server; use unftpsbegcs::{ServerExt, options::AuthMethod}; use std::path::PathBuf;
#[tokio::main] pub async fn main() { let server = Server::withgcs("my-bucket", PathBuf::from("/unftp"), AuthMethod::WorkloadIdentity(None)) .greeting("Welcome to my FTP server") .passiveports(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.
```rust use libunftp::Server; use unftpsbegcs::{CloudStorage, options::AuthMethod}; use std::path::PathBuf;
#[tokio::main] pub async fn main() { let server = libunftp::Server::new( Box::new(move || CloudStorage::withbucketroot("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.
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
You're free to use, modify and distribute this software under the terms of the Apache License v2.0.