Struct cloud_storage::sync::ObjectClient [−][src]
pub struct ObjectClient<'a>(_);
Expand description
Operations on Objects.
Implementations
impl<'a> ObjectClient<'a>[src]
impl<'a> ObjectClient<'a>[src]pub fn create(
&self,
bucket: &str,
file: Vec<u8>,
filename: &str,
mime_type: &str
) -> Result<Object>[src]
pub fn create(
&self,
bucket: &str,
file: Vec<u8>,
filename: &str,
mime_type: &str
) -> Result<Object>[src]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")?;
pub fn create_streamed<R>(
&self,
bucket: &str,
file: R,
length: impl Into<Option<u64>>,
filename: &str,
mime_type: &str
) -> Result<Object> where
R: Read + Send + 'static, [src]
pub fn create_streamed<R>(
&self,
bucket: &str,
file: R,
length: impl Into<Option<u64>>,
filename: &str,
mime_type: &str
) -> Result<Object> where
R: Read + Send + 'static, [src]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.
pub fn list(
&self,
bucket: &'a str,
list_request: ListRequest
) -> Result<Vec<ObjectList>>[src]
pub fn list(
&self,
bucket: &'a str,
list_request: ListRequest
) -> Result<Vec<ObjectList>>[src]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())?;
pub fn read(&self, bucket: &str, file_name: &str) -> Result<Object>[src]
pub fn read(&self, bucket: &str, file_name: &str) -> Result<Object>[src]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")?;
pub fn download(&self, bucket: &str, file_name: &str) -> Result<Vec<u8>>[src]
pub fn download(&self, bucket: &str, file_name: &str) -> Result<Vec<u8>>[src]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")?;
pub fn update(&self, object: &Object) -> Result<Object>[src]
pub fn update(&self, object: &Object) -> Result<Object>[src]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)?;
pub fn delete(&self, bucket: &str, file_name: &str) -> Result<()>[src]
pub fn delete(&self, bucket: &str, file_name: &str) -> Result<()>[src]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")?;
pub fn compose(
&self,
bucket: &str,
req: &ComposeRequest,
destination_object: &str
) -> Result<Object>[src]
pub fn compose(
&self,
bucket: &str,
req: &ComposeRequest,
destination_object: &str
) -> Result<Object>[src]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.
pub fn copy(
&self,
object: &Object,
destination_bucket: &str,
path: &str
) -> Result<Object>[src]
pub fn copy(
&self,
object: &Object,
destination_bucket: &str,
path: &str
) -> Result<Object>[src]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.
pub fn rewrite(
&self,
object: &Object,
destination_bucket: &str,
path: &str
) -> Result<Object>[src]
pub fn rewrite(
&self,
object: &Object,
destination_bucket: &str,
path: &str
) -> Result<Object>[src]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
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T[src]
impl<T> Instrument for T[src]fn instrument(self, span: Span) -> Instrumented<Self>[src]
fn instrument(self, span: Span) -> Instrumented<Self>[src]Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>[src]
fn in_current_span(self) -> Instrumented<Self>[src]