Struct cloud_storage::sync::ObjectClient
source · [−]pub struct ObjectClient<'a>(_);Expand description
Operations on Objects.
Implementations
Create a new object. Upload a file as that is loaded in memory to google cloud storage, where it will be interpreted according to the mime type you specified.
Example
use cloud_storage::sync::Client;
use cloud_storage::Object;
let file: Vec<u8> = read_cute_cat("cat.png");
let client = Client::new()?;
client.object().create("cat-photos", file, "recently read cat.png", "image/png")?;Create a new object. This works in the same way as ObjectClient::create, except it does not need
to load the entire file in ram.
Obtain a list of objects within this Bucket.
Example
use cloud_storage::sync::Client;
use cloud_storage::{Object, ListRequest};
let client = Client::new()?;
let all_objects = client.object().list("my_bucket", ListRequest::default())?;Obtains a single object with the specified name in the specified bucket.
Example
use cloud_storage::sync::Client;
use cloud_storage::Object;
let client = Client::new()?;
let object = client.object().read("my_bucket", "path/to/my/file.png")?;Download the content of the object with the specified name in the specified bucket.
Example
use cloud_storage::sync::Client;
use cloud_storage::Object;
let client = Client::new()?;
let bytes = client.object().download("my_bucket", "path/to/my/file.png")?;Obtains a single object with the specified name in the specified bucket.
Example
use cloud_storage::sync::Client;
use cloud_storage::Object;
let client = Client::new()?;
let mut object = client.object().read("my_bucket", "path/to/my/file.png")?;
object.content_type = Some("application/xml".to_string());
client.object().update(&object)?;Deletes a single object with the specified name in the specified bucket.
Example
use cloud_storage::sync::Client;
use cloud_storage::Object;
let client = Client::new()?;
client.object().delete("my_bucket", "path/to/my/file.png")?;Obtains a single object with the specified name in the specified bucket.
Example
use cloud_storage::sync::Client;
use cloud_storage::object::{Object, ComposeRequest, SourceObject};
let client = Client::new()?;
let obj1 = client.object().read("my_bucket", "file1")?;
let obj2 = client.object().read("my_bucket", "file2")?;
let compose_request = ComposeRequest {
kind: "storage#composeRequest".to_string(),
source_objects: vec![
SourceObject {
name: obj1.name.clone(),
generation: None,
object_preconditions: None,
},
SourceObject {
name: obj2.name.clone(),
generation: None,
object_preconditions: None,
},
],
destination: None,
};
let obj3 = client.object().compose("my_bucket", &compose_request, "test-concatted-file")?;
// obj3 is now a file with the content of obj1 and obj2 concatted together.Copy this object to the target bucket and path
Example
use cloud_storage::sync::Client;
use cloud_storage::object::{Object, ComposeRequest};
let client = Client::new()?;
let obj1 = client.object().read("my_bucket", "file1")?;
let obj2 = client.object().copy(&obj1, "my_other_bucket", "file2")?;
// obj2 is now a copy of obj1.Moves a file from the current location to the target bucket and path.
Limitations
This function does not yet support rewriting objects to another
- Geographical Location,
- Encryption,
- Storage class. These limitations mean that for now, the rewrite and the copy methods do the same thing.
Example
use cloud_storage::sync::Client;
use cloud_storage::object::Object;
let client = Client::new()?;
let obj1 = client.object().read("my_bucket", "file1")?;
let obj2 = client.object().rewrite(&obj1, "my_other_bucket", "file2")?;
// obj2 is now a copy of obj1.Trait Implementations
Auto Trait Implementations
impl<'a> !RefUnwindSafe for ObjectClient<'a>
impl<'a> Send for ObjectClient<'a>
impl<'a> Sync for ObjectClient<'a>
impl<'a> Unpin for ObjectClient<'a>
impl<'a> !UnwindSafe for ObjectClient<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more