A [`Replace`] gives access to the existing object, if one is stored, that may be used to construct
the replacement object. Use [`Replace::execute()`] to get a [`StreamingBody`] to write the replacement
object into. The existing object cannot be accessed after calling [`Replace::execute()`].
For the replace to complete successfully, the object must be written into the [`StreamingBody`],
and then [`StreamingBody::finish()`] must be called. If the [`StreamingBody`] is dropped before calling
[`StreamingBody::finish()`], the replacement is considered incomplete, and any concurrent lookups that
may be reading from the object as it is streamed into the cache may encounter a streaming error.