https://github.com/bugfender/s3-version-restore
Point-in-time recovery of an S3 bucket
https://github.com/bugfender/s3-version-restore
aws-s3
Last synced: 3 months ago
JSON representation
Point-in-time recovery of an S3 bucket
- Host: GitHub
- URL: https://github.com/bugfender/s3-version-restore
- Owner: bugfender
- License: apache-2.0
- Created: 2023-08-30T14:18:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-30T14:39:43.000Z (over 1 year ago)
- Last Synced: 2025-01-08T16:02:35.975Z (5 months ago)
- Topics: aws-s3
- Language: Go
- Homepage:
- Size: 16.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# S3 Version Restore
Point-in-time recovery of an S3 bucket.
This tool iterates over all objects in a bucket and restores versions at a given timestamp.
## How it works
It modifies the version information in place, so objects are never downloaded/uploaded.
Version information is always added, so information is never lost. Object versions are restored by creating a new
version with the desired contents.It is safe to use multiple times to restore different time points.
## Environment variables
You can use [AWS standard environment variables](https://github.com/aws/aws-sdk-go-v2/blob/main/config/env_config.go#L4).
You will typically want to declare `AWS_ACCESS_KEY_ID` and `AWS_ACCESS_KEY`.You can also define `AWS_ENDPOINT_URL_S3` to specify a custom S3 endpoint.
Note: [endpoint URLs are currently specified](https://docs.aws.amazon.com/sdkref/latest/guide/feature-ss-endpoints.html) but the Go AWS SDK does not implement them, so we implement `AWS_ENDPOINT_URL_S3`.
## Building
```
go build
```There is also a `build.sh` file to build for multiple platforms.
## Support
This tool is open source and free to use (see `LICENSE`), but you can get commercial
support from Beenario GmbH for a fee. Contact us if you're interested.## Acknowledgements
The inspiration for this tool came from [angeloc/s3-pit-restore](https://github.com/angeloc/s3-pit-restore/), although it didn't work for our use case.