Currently we capture only the object's key, and its data. But to be useful for a general-purpose backup tool, we need to preserve object metadata as well. Including, but not limited to:
- tags
- access control lists (ACLs)
- user-defined metadata
- original creation date
- version ID
When restoring, the default behavior should be to restore all possible metadata (unfortunately it's not possible to preserve the original create date or the version ID), with an option to restore only specific metadata components instead.
This should be doable by storing our custom metadata in the tar archive in a separate "file" which appears in the archive before the actual object. We can make this file hidden and append a suffix like .$$metadata or something to ensure it's not confused for a real object. The extract stage would need to be modified to handle this, but that complexity would be hidden completely from the public API.
Currently we capture only the object's key, and its data. But to be useful for a general-purpose backup tool, we need to preserve object metadata as well. Including, but not limited to:
When restoring, the default behavior should be to restore all possible metadata (unfortunately it's not possible to preserve the original create date or the version ID), with an option to restore only specific metadata components instead.
This should be doable by storing our custom metadata in the
tararchive in a separate "file" which appears in the archive before the actual object. We can make this file hidden and append a suffix like.$$metadataor something to ensure it's not confused for a real object. Theextractstage would need to be modified to handle this, but that complexity would be hidden completely from the public API.