_____ __ _ ____|__ // /___ __(_) / ___//_ / __/ / / / / (__ )__/ / /_/ /_/ / / /____/____/\__/\__,_/_/
[![CI][s0]][l0] [![crates][s1]][l1] ![MIT][s2] [![UNSAFE][s3]][l3] [![TWEET][s6]][l6] [![dep_status][s7]][l7]
[s0]: https://github.com/softberries/s3tui/actions/workflows/rust.yml/badge.svg [l0]: https://github.com/softberries/s3tui/actions/workflows/rust.yml [s1]: https://img.shields.io/crates/v/s3tui.svg [l1]: https://crates.io/crates/s3tui [s2]: https://img.shields.io/badge/license-MIT-blue.svg [s3]: https://img.shields.io/badge/unsafe-forbidden-success.svg [l3]: https://github.com/rust-secure-code/safety-dance/ [s6]: https://img.shields.io/twitter/follow/grajo?label=follow&style=social [l6]: https://twitter.com/intent/follow?screen_name=grajo [s7]: https://deps.rs/repo/github/softberries/s3tui/status.svg [l7]: https://deps.rs/crate/s3tui --- # s3tui - AWS S3 Transfer CLI `s3tui` is a ~~powerful~~ terminal-based application that enables seamless file transfers between your local machine and multiple AWS S3 accounts. Crafted with the [ratatui](https://github.com/ratatui-org/ratatui) Rust TUI framework, `s3tui` provides a robust user interface for managing uploads and downloads simultaneously in both directions, enhancing your productivity with S3 services. ![s3tui](assets/s3tui.gif) ## Features - **Multiple Account Support**: Easily configure and switch between different S3 accounts during runtime using the 's' command. - **Simultaneous Transfers**: Transfer multiple files at once, both to and from S3, thanks to multithreading capabilities powered by the [tokio](https://github.com/tokio-rs/tokio) library. - **Interactive Commands**: - `Tab,↔` - move between local and s3 panel - `s` - select account currently in use. - `Esc` - move back to the file manager window. - `↕ / j / k` - move up/down on the lists. - `t` - select/deselect files to transfer. - `c` - create bucket. - `⌫ / Del` - delete item. - `l` - Display currently selected files for transfer. - `r` - Execute the selected transfers. - `q` - Quit the application. - `?` - Access the help page with all available commands. - **Environment Configuration**: Customize settings via environment variables or utilize default settings compliant with the XDG Base Directory Specification. - **Error Handling**: Integrated `color_eyre` panic hook for clear and colorized error reporting. - **Version Information**: Quickly view the application version with the `--version` command. ## Setup 1. **Configure Environment Variables**: ```bash export S3TUI_CONFIG=`pwd`/.config export S3TUI_DATA=`pwd`/.data export S3TUI_LOGLEVEL=info ``` Alternatively, use the default paths set according to the XDG Base Directory Specification. You can check your configuration by running `s3tui --version` which will show you the paths currently in use. 2. **Add your s3 credentials** - Add as many configurations under `creds` directory (inside your `.data` directory specified with `S3TUI_DATA` env variable) - The file should look like the one below: ```bash access_key=YOUR_ACCESS_KEY secret_key=YOUR_SECRET_KEY default_region=eu-west-1 ``` Make sure there is a new line at the end and there are no leading spaces on the lines. 3. **Installation from crates.io**: - Ensure you have Rust and `cargo` installed. - Install with cargo ```bash cargo install s3tui ``` 4. **Building locally**: - Ensure you have Rust and `cargo` installed. - Clone the repository and build the project: ```bash git clone cd s3tui cargo build --release ``` 5. **Running s3tui**: - Navigate to the project directory and run: ```bash ./target/release/s3tui ``` ## Logs Application logs are efficiently managed and stored in the directory specified by `S3TUI_DATA`, keeping you informed of all operations and aiding in troubleshooting. ## Getting Started Once `s3tui` is running, press `?` to open the help page, which displays all the commands and their functions, allowing you to start transferring files immediately. Enhance your productivity with `s3tui`, the command-line interface that bridges the gap between local file management and cloud storage with ease and efficiency. Whether you're managing large datasets or performing routine backups, `s3tui` makes S3 file transfer tasks intuitive and manageable directly from your terminal.