A simple lightweight CLI tool for backing up and restoring data from S3 & S3-compatible storage
2.9K
S3Safe is simple a lightweight CLI tool for backing up and restoring data from Amazon S3 and S3-compatible storage.
# Using Go
go install github.com/jkaninda/s3safe@latest
# Using Docker
docker pull jkaninda/s3safe:latest
Copy .env.example to .env and configure your S3 credentials:
AWS_REGION=us-east-1
AWS_ENDPOINT=https://s3.wasabisys.com
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_KEY=your_secret_key
AWS_BUCKET=your_bucket_name
AWS_FORCE_PATH="true" # For path-style URLs
AWS_DISABLE_SSL="false" # Set "true" for non-HTTPS endpoints
| Option | Short | Description |
|---|---|---|
--exclude | -e | Exclude files/directories (comma-separated patterns) |
--recursive | -r | Process directories recursively |
--path | -p | Source directory path |
--dest | -d | Destination path (in S3 or local filesystem) |
--file | -f | Process single file instead of directory |
--ignore-errors | -i | Continue on errors during restore |
--env-file | Custom environment file (default: .env) | |
--help | -h | Show help message |
--version | -v | Show version information |
| Option | Short | Description |
|---|---|---|
--compress | -c | Compress before upload (creates .tar.gz) |
--timestamp | -t | Add timestamp to compressed filename |
| Option | Short | Description |
|---|---|---|
--decompress | -D | Decompress after download |
--force | Force restore to destination path, overwrite existing files |
Backup directory (compressed):
s3safe backup -p ./backups -d /s3path --compress --timestamp
Backup single file:
s3safe backup --file data.db --dest /s3path/db-backups --compress
Non-compressed directory backup:
s3safe backup -p ./backups -d /s3path/backups -r
Restore compressed backup:
s3safe restore -p /s3path/backup.tar.gz -d ./backups --decompress
Restore directory (recursive):
s3safe restore --path /s3path --dest ./backups --recursive
Backup with Docker:
docker run --rm --env-file .env \
-v "./backups:/backups" \
jkaninda/s3safe:latest \
backup --path /backups -d s3path --compress
Restore with Docker:
docker run --rm --env-file .env \
-v "./restored:/restored" \
jkaninda/s3safe:latest \
restore --path s3path/backup.tar.gz -d /restored --decompress
MIT License - See LICENSE for details.
Content type
Image
Digest
sha256:a9743518a…
Size
11.2 MB
Last updated
over 1 year ago
docker pull jkaninda/s3safe