shuk

Crates.ioshuk
lib.rsshuk
version0.4.7
sourcesrc
created_at2024-06-02 05:25:23.011283
updated_at2024-12-11 04:28:46.539761
descriptionA command line tool that uploads files to Amazon S3 buckets, and generates presigned URLs for easy sharing.
homepagehttps://rup12.net
repositoryhttps://github.com/darko-mesaros/shuk
max_upload_size
id1259013
size792,484
Darko Mesaros (darko-mesaros)

documentation

README

Shuk 💾 ➡️ 🪣

screenshot of shuk

⚠️BETA SOFTWARE⚠️

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.

Installation 💾

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 🚀

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

Configuration 🔧

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

Build Notes

Check the BUILDING.md file in this repo.

Troubleshooting

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.

Commit count: 54

cargo fmt