Shuk is used to upload files of any size to Amazon S3 and have them shared with others via a presigned URL. If the same file already exists at the same location, it will only presign it.
To install this tool, make sure you have rust
and cargo
installed and run:
cargo install shuk
NOTE: Whenever installing a new version, run
shuk --init
for best results. Sometimes new configuration options are added.
Usage: shuk [OPTIONS] [FILENAME]
Arguments:
[FILENAME]
Options:
--init
-v, --verbose Enable verbose logging
-h, --help Print help
-V, --version Print version
Just pass the filename as the argument to shuk
:
shuk filename.bla
All the configuration is located in the $HOME/.config/shuk.shuk.toml
file.
# The bucket name where the files will be uploaded
bucket_name = "alan-ford-bucket"
# The prefix (folder) for the uploads. Leave blank "" for the root of the bucket
bucket_prefix = "shuk"
# Length of time in seconds on how long will the presigned URL be valid for
presigned_time = 86400
# The AWS profile shuk will use
aws_profile = "default"
# Should the presigned URL be stored directly to the clipboard or not
use_clipboard = false
# Set the fallback region
fallback_region = "us-east-1"
To automatically configure this file just run shuk --init
Check the BUILDING.md
file in this repo.
This project uses the log crate. To get different levels of logging set the SHUK_LOG
environment variable to either trace
, warn
, info
, debug
, or error
. By default it is using the warn
level.
Or better yet, just pass the --verbose
flag, as this will run the trace
level output. Be careful, there will be a lot of stuff on your screen.