RGW maintains a manifest of each object. The
class RGWObjManifest implements the details with object head, tail placement.
Manifest is written as XATTRs along with
/** * Write/overwrite an object to the bucket storage. * bucket: the bucket to store the object in * obj: the object name/key * data: the object contents/value * size: the amount of data to write (data must be this long) * accounted_size: original size of data before compression, encryption * mtime: if non-NULL, writes the given mtime to the bucket storage * attrs: all the given attrs are written to bucket storage for the given object * exclusive: create object exclusively * Returns: 0 on success, -ERR# otherwise. */
Written with StackEdit.