Skip to content

envirobly/tinyups3

Repository files navigation

tinyups3

Streaming S3 uploader optimized for minimum CPU and RAM usage. Ideal for constrained systems.

tinyups3-logo

Installation

Download the relevant binary for your platform from the Releases section and make it executable. For example:

sudo curl -fSsL -o /usr/local/bin/tinyups3 https://github.com/envirobly/tinyups3/releases/download/v1.0.3/tinyups3_linux_arm64
sudo chmod +x /usr/local/bin/tinyups3
tinyups3 --help

Usage

tinyups3 [--partSize=MB] [--inputSize=bytes] s3://bucket/key
  -inputSize int
        Exact input size in bytes (required)
  -partSize int
        Part size in MB for multipart upload (min 5MB) (default 5)

Example

cat largefile | tinyups3 --inputSize $(stat -c%s largefile) s3://... 

Note: On MacOS use gstat instead of the outdated stat.

Building from source

GOOS=linux GOARCH=arm64 go build -o dist/arm64/tinyups3 .

Development

Running tests

go test ./...

Formatting

Apply Go formatting:

go fmt ./...

Running in development

# Install dependencies
go mod tidy

go run main.go ...

Upgrading dependencies

go get -u ./...
go mod tidy 

About

Streaming S3 uploader optimized for tiny memory and CPU usage. Ideal for constrained systems.

Topics

Resources

License

Stars

Watchers

Forks

Languages