yoshidan / google-cloud-rust

Google Cloud Client Libraries for Rust.
MIT License
233 stars 85 forks source link

Better documentation for `rewrite_object` #101

Closed phayes closed 1 year ago

phayes commented 1 year ago

Because multiple requests might be required to complete a rewrite of a large object, you need to call the rewrite in a loop. The documentation could be improved to make this more obvious. Something like this:

use google_cloud_storage::client::Client;
use google_cloud_storage::http::objects::rewrite::RewriteObjectRequest;

#[tokio::main]
async fn main() {
    let mut done = false;
    let mut rewrite_token = None;
    let client = Client::default().await.unwrap();

    while !done {
        let result = client.rewrite_object(&RewriteObjectRequest{
            source_bucket: "bucket1".to_string(),
            source_object: "object".to_string(),
            destination_bucket: "bucket2".to_string(),
            destination_object: "object1".to_string(),
            rewrite_token: rewrite_token.clone(),
            ..Default::default()
        }, None).await;

        done = result.done;
        rewrite_token = result.rewrite_token;
    }
}
yoshidan commented 1 year ago

Thank you. I will change docs.