https://github.com/luzifer/s3sync
Small utility to sync local directories from/to Amazon S3 / MinIO without installing any dependencies
https://github.com/luzifer/s3sync
aws minio s3
Last synced: 4 months ago
JSON representation
Small utility to sync local directories from/to Amazon S3 / MinIO without installing any dependencies
- Host: GitHub
- URL: https://github.com/luzifer/s3sync
- Owner: Luzifer
- License: apache-2.0
- Created: 2015-07-26T14:08:44.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-06-09T17:49:31.000Z (about 3 years ago)
- Last Synced: 2025-04-10T20:07:52.132Z (about 1 year ago)
- Topics: aws, minio, s3
- Language: Go
- Homepage:
- Size: 7.07 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
1. Set `AWS_ACCESS_KEY`, `AWS_SECRET_ACCESS_KEY` and `AWS_REGION`
2. Execute your sync
```bash
# s3sync --help
Usage of s3sync:
-d, --delete Delete files on remote not existing on local
--endpoint string Switch S3 endpoint (i.e. for MinIO compatibility)
--log-level string Log level (debug, info, warn, error, fatal) (default "info")
--max-threads int Use max N parallel threads for file sync (default 10)
-P, --public Make files public when syncing to S3
--version Prints current version and exits
# echo "ello" >test.txt
# echo "foobar" >test2.txt
# s3sync --delete ./ s3://test/
time="2023-06-09T17:15:09+02:00" level=info msg="transferred file" filename=test2.txt
time="2023-06-09T17:15:09+02:00" level=info msg="transferred file" filename=test.txt
# s3sync --delete ./ s3://test/
# touch test.txt
# rm test2.txt
# s3sync --delete ./ s3://test/
time="2023-06-09T17:15:29+02:00" level=info msg="deleted remote file" filename=test2.txt
time="2023-06-09T17:15:29+02:00" level=info msg="transferred file" filename=test.txt
```