S3 Terminal UI
STU is the TUI explorer application for Amazon S3 (AWS S3) written in Rust using ratatui.
$ cargo install --locked stu
$ brew install lusingander/tap/stu
$ paru -S stu
You can download binaries from releases.
After installation, run the following command:
$ stu
Basically, you can use it in the same way as the AWS CLI.
In other words, if the default profile settings exist or the environment variables are set, you do not need to specify any options.
STU - S3 Terminal UI
Usage: stu [OPTIONS]
Options:
-r, --region <REGION> AWS region
-e, --endpoint-url <URL> AWS endpoint url
-p, --profile <NAME> AWS profile name
-b, --bucket <NAME> Target bucket name
--path-style <TYPE> Path style type for object paths [default: auto] [possible values: auto, always, never]
--debug Enable debug logs
-h, --help Print help
-V, --version Print version
Here are some examples of how to run with options:
# Connect by specifying the profile
$ stu --profile foo-profile
# Show only the specified bucket objects
$ stu --bucket bar-bucket
# Connect to localstack, minio, etc.
$ stu --endpoint-url http://localhost:12345
# Connect by specifying environment variables
$ AWS_ACCESS_KEY_ID=abc AWS_SECRET_ACCESS_KEY=xyz stu
Select the address model for S3 objects.
never
uses Virtual-Hosted Style, which is what AWS currently uses.
https://bucket.s3.region.amazonaws.com/key
always
uses Path Style, which is used when using localstack, minio, etc.
https://s3.region.amazonaws.com/bucket/key
auto
automatically determines which model to use, which is the default setting.For other S3-compatible services, which one to use depends on the service.
The basic key bindings are as follows:
Key | Description |
---|---|
Ctrl-C | Quit app |
Esc | Quit app / Close dialog |
Enter | Confirm / Open selected item |
Backspace | Go back to previous / Close dialog |
j/k | Select item / Scroll |
? | Show help |
Detailed operations on each view can be displayed by pressing ?
key.
Config is loaded from $STU_ROOT_DIR/config.toml
.
STU_ROOT_DIR
environment variable is not set, ~/.stu
is used by default.
STU_ROOT_DIR
directory does not exist, it will be created automatically.The values set in this example are the default values.
# The directory to save the downloaded objects.
# type: string
download_dir = "$STU_ROOT_DIR/download"
# The default region to use if the region cannot be obtained from the command line options or AWS settings.
# type: string
default_region = "us-east-1"
[ui.object_list]
# The date format of a last modified in the object list.
# The format must be specified in strftime format.
# https://docs.rs/chrono/latest/chrono/format/strftime/index.html
# type: string
date_format = "%Y-%m-%d %H:%M:%S"
# The width of a last modified in the object list.
# It is recommended to set this when setting date_format.
# type: u16
date_width = 19
[ui.object_detail]
# The date format of a last modified in the object detail.
# The format must be specified in strftime format.
# https://docs.rs/chrono/latest/chrono/format/strftime/index.html
# type: string
date_format = "%Y-%m-%d %H:%M:%S"
[preview]
# Whether syntax highlighting is enabled in the object preview.
# type: bool
highlight = false
# The name of the color theme to use for syntax highlighting in the object preview.
# type: string
highlight_theme = "base16-ocean.dark"
# Whether image file preview is enabled in the object preview.
# type: bool
image = false
In the object preview, Syntax highlighting using syntect is available. To enable this, set preview.highlight = true
in the config file.
You can change the color theme by specifying the theme name in preview.highlight_theme
.
By default the following themes are available:
base16-ocean.dark
base16-eighties.dark
base16-mocha.dark
base16-ocean.light
InspiredGitHub
Solarized (dark)
Solarized (light)
Also, by creating xxx.tmTheme
in $STU_ROOT_DIR/preview_theme/
, you can use xxx
and load it.
You can add syntax definitions for file types that are not supported by default. You can use it by creating a .sublime-syntax
file in $STU_ROOT_DIR/preview_syntax/
.
https://www.sublimetext.com/docs/syntax.html
--debug
flag, logs will be output to $STU_ROOT_DIR/debug.log
.
F12
while the application is running will dump the application state to the log.To get started with contributing, please review CONTRIBUTING.md.
Contributions that do not follow these guidelines may not be accepted.
MIT