Thanks to visit codestin.com
Credit goes to github.com

Skip to content

A lightweight CLI tool for backing up and restoring data from Amazon S3 and S3-compatible storage

License

Notifications You must be signed in to change notification settings

jkaninda/s3safe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

S3Safe - S3 Backup & Restore Tool

GitHub Release Go Report Card Go Reference Docker Image Size

S3Safe is simple a lightweight CLI tool for backing up and restoring data from Amazon S3 and S3-compatible storage.

Installation

# Using Go
go install github.com/jkaninda/s3safe@latest

# Using Docker
docker pull jkaninda/s3safe:latest

Configuration

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

Command Reference

Global Options

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

Backup Options

Option Short Description
--compress -c Compress before upload (creates .tar.gz)
--timestamp -t Add timestamp to compressed filename

Restore Options

Option Short Description
--decompress -D Decompress after download
--force Force restore to destination path, overwrite existing files

Usage Examples

Backup Operations

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 Operations

Restore compressed backup:

s3safe restore -p /s3path/backup.tar.gz -d ./backups --decompress

Restore directory (recursive):

s3safe restore --path /s3path --dest ./backups --recursive

Docker Usage

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

License

MIT License - See LICENSE for details.

About

A lightweight CLI tool for backing up and restoring data from Amazon S3 and S3-compatible storage

Resources

License

Stars

Watchers

Forks

Packages