The Client::RewriteObject() operation allows applications to copy objects across location boundaries, and to rewrite objects with different encryption keys. In some circumstances it may take multiple calls to the service to complete a rewrite, this class encapsulates the state of a partial copy.
The progress after the iteration. If the rewrite has completed the application can use Result() to examine the metadata for the newly created object.
CurrentProgress() const
The current progress on the rewrite operation.
Returns
Type
Description
StatusOr< RewriteProgress >
Result()
Iterate until the operation completes using a callback to report progress.
Returns
Type
Description
StatusOr< ObjectMetadata >
the object metadata once the copy completes.
ResultWithProgressCallback(Functor)
Iterate until the operation completes using a callback to report progress.
Parameters
Name
Description
cb
Functor
the callback object.
typename Functor
the type of the callback object. It must satisfy: std:is_invocable<Functor,StatusOr<RewriteProgress>>:: value == true.
typename std::enable_if<>< functor,="">
Returns
Type
Description
StatusOr< ObjectMetadata >
the object metadata once the copy completes.
token() const
The current rewrite token.
Applications can save the token of partially completed rewrites, and restart those operations using Client::CopyObjectRestart, even if the application has terminated. It is up to the application to preserve all the other information for the request, including source and destination buckets, encryption keys, and any preconditions affecting the request.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-04-01 UTC."],[[["This document outlines the `ObjectRewriter` class, which is used to manage and complete long-running object rewrite operations in Google Cloud Storage, including copying across locations and changing encryption keys."],["The `ObjectRewriter` class provides functions like `Iterate()`, `Result()`, and `ResultWithProgressCallback()` to perform and monitor the progress of the rewrite process, allowing users to track each iteration or complete the rewrite with progress reports."],["Users can retrieve the current status of a rewrite operation using `CurrentProgress()`, which provides a `RewriteProgress` object, and once completed, they can obtain the new object's metadata through `Result()`."],["The `token()` function provides a mechanism to save and resume partially completed rewrites using `Client::CopyObjectRestart`, even across application sessions, by preserving the rewrite token and other pertinent request information."],["The document lists the historical version numbers for ObjectRewriter class with the latest version being 2.37.0-rc."]]],[]]