Point-in-time recovery of an S3 bucket.
This tool iterates over all objects in a bucket and restores versions at a given timestamp.
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.
You can use AWS standard environment variables.
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 but the Go AWS SDK does not implement them, so we implement AWS_ENDPOINT_URL_S3
.
go build
There is also a build.sh
file to build for multiple platforms.
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.
The inspiration for this tool came from angeloc/s3-pit-restore, although it didn't work for our use case.