mirror of
https://github.com/Luzifer/s3sync.git
synced 2024-12-20 11:31:17 +00:00
Small utility to sync local directories from/to Amazon S3 without installing any dependencies
Knut Ahlers
627fe09bac
- Drop MD5 checksumming - Replace logging to stdout - Add Endpoint flag for MinIO support - Switch to Go modules support Signed-off-by: Knut Ahlers <knut@ahlers.me> |
||
---|---|---|
.github/workflows | ||
pkg/fsprovider | ||
.gitignore | ||
.golangci.yml | ||
go.mod | ||
go.sum | ||
History.md | ||
LICENSE | ||
main.go | ||
Makefile | ||
README.md |
Luzifer / s3sync
s3sync
is a small utility to sync local directories from/to Amazon S3 without installing any dependencies. Just put the binary somewhere into your path and set three ENV variables and your're ready to sync.
Features
- Static binary, no dependencies required
- Sync files only if required (judged by file size & modify-date)
- Using multiple threads to upload the transfer is quite fast
- Optionally delete files at target
- Optionally make files public on sync (only if file needs sync)
- Sync local-to-s3, s3-to-local, local-to-local or s3-to-s3
Usage
- Set
AWS_ACCESS_KEY
,AWS_SECRET_ACCESS_KEY
andAWS_REGION
- Execute your sync
# s3sync --help
Sync files from <from> to <to>
Usage:
s3sync <from> <to> [flags]
Flags:
-d, --delete=false: Delete files on remote not existing on local
-h, --help=false: help for s3sync
--max-threads=10: Use max N parallel threads for file sync
-P, --public=false: Make files public when syncing to S3
--version=false: Print version and quit
# s3sync -d 1/ s3://knut-test-s3sync/
(1 / 3) 05/11/pwd_luzifer_io.png OK
(2 / 3) 07/26/bkm.png OK
(3 / 3) 07/26/luzifer_io.png OK
# s3sync -d 1/ s3://knut-test-s3sync/
(1 / 3) 05/11/pwd_luzifer_io.png Skip
(2 / 3) 07/26/bkm.png Skip
(3 / 3) 07/26/luzifer_io.png Skip
# rm -rf 1/05
# s3sync -d s3://knut-test-s3sync/ 1/
(1 / 3) 05/11/pwd_luzifer_io.png OK
(2 / 3) 07/26/bkm.png Skip
(3 / 3) 07/26/luzifer_io.png Skip