Restore S3 object state at a precise cutoff
The snapshot represents the source as it existed at an absolute timestamp or a relative point in the past. Godwit Sync writes the version current for each key at that moment and excludes keys whose latest entry was a delete marker.
Relative cutoffs use the source server clock
S3 assigns Last-Modified timestamps on the storage server. Godwit Sync derives a relative cutoff from the source server's Date header, preventing local clock skew from shifting the restore window.
- The cutoff is inclusive
- Accepts seconds through weeks
- Accepts absolute RFC3339 timestamps
- --plan-only records each selection
# Preview the source as it was 3 days ago
$ godwit sync \
--source s3://prod-bucket \
--source-endpoint s3.amazonaws.com \
--source-access-key <SOURCE_ACCESS_KEY> \
--source-secret-key <SOURCE_SECRET_KEY> \
--destination /restore/three-days-ago \
--state-path ./godwit.state.db \
--run-id restore-three-days-ago \
--version-mode asof:3d \
--plan-onlyRestore boundary details
What happens to keys created or deleted around the cutoff?
Keys created after the cutoff have no eligible version and are omitted. A delete marker as the newest eligible entry also omits the key, while a version stamped at the cutoff remains eligible.
Does point-in-time restore remove extra destination keys?
No, Godwit Sync writes the selected objects but leaves all other destination keys unchanged. Restore into an empty bucket or directory when the result must contain only the cutoff state.
Can an interrupted point-in-time restore resume safely?
Yes, keep the same state database, run ID, source, destination, and version mode. Resume reuses the saved selection without resolving a relative cutoff again.
Explore related capabilities
Review the selected object versions before transfer.
Use an empty destination when you need a clean point-in-time snapshot.