pub struct BucketClient<'a>(/* private fields */);
Expand description
Operations on Bucket
s.
Implementations§
Source§impl<'a> BucketClient<'a>
impl<'a> BucketClient<'a>
Sourcepub fn create(&self, new_bucket: &NewBucket) -> Result<Bucket>
pub fn create(&self, new_bucket: &NewBucket) -> Result<Bucket>
Creates a new Bucket
. There are many options that you can provide for creating a new
bucket, so the NewBucket
resource contains all of them. Note that NewBucket
implements
Default
, so you don’t have to specify the fields you’re not using. And error is returned
if that bucket name is already taken.
§Example
use cloud_storage::sync::Client;
use cloud_storage::bucket::{Bucket, NewBucket};
use cloud_storage::bucket::{Location, MultiRegion};
let client = Client::new()?;
let new_bucket = NewBucket {
name: "cloud-storage-rs-doc-1".to_string(), // this is the only mandatory field
location: Location::Multi(MultiRegion::Eu),
..Default::default()
};
let bucket = client.bucket().create(&new_bucket)?;
Sourcepub fn read(&self, name: &str) -> Result<Bucket>
pub fn read(&self, name: &str) -> Result<Bucket>
Returns a single Bucket
by its name. If the Bucket does not exist, an error is returned.
§Example
use cloud_storage::sync::Client;
use cloud_storage::Bucket;
let client = Client::new()?;
let bucket = client.bucket().read("cloud-storage-rs-doc-2")?;
Sourcepub fn update(&self, bucket: &Bucket) -> Result<Bucket>
pub fn update(&self, bucket: &Bucket) -> Result<Bucket>
Update an existing Bucket
. If you declare you bucket as mutable, you can edit its fields.
You can then flush your changes to Google Cloud Storage using this method.
§Example
use cloud_storage::sync::Client;
use cloud_storage::bucket::{Bucket, RetentionPolicy};
let client = Client::new()?;
let mut bucket = client.bucket().read("cloud-storage-rs-doc-3")?;
bucket.retention_policy = Some(RetentionPolicy {
retention_period: 50,
effective_time: chrono::Utc::now() + chrono::Duration::seconds(50),
is_locked: Some(false),
});
client.bucket().update(&bucket)?;
Sourcepub fn delete(&self, bucket: Bucket) -> Result<()>
pub fn delete(&self, bucket: Bucket) -> Result<()>
Delete an existing Bucket
. This permanently removes a bucket from Google Cloud Storage.
An error is returned when you don’t have sufficient permissions, or when the
retention_policy
prevents you from deleting your Bucket.
§Example
use cloud_storage::sync::Client;
use cloud_storage::Bucket;
let client = Client::new()?;
let bucket = client.bucket().read("unnecessary-bucket")?;
client.bucket().delete(bucket)?;
Sourcepub fn get_iam_policy(&self, bucket: &Bucket) -> Result<IamPolicy>
pub fn get_iam_policy(&self, bucket: &Bucket) -> Result<IamPolicy>
Returns the IAM Policy for this bucket.
§Example
use cloud_storage::sync::Client;
use cloud_storage::Bucket;
let client = Client::new()?;
let bucket = client.bucket().read("cloud-storage-rs-doc-4")?;
let policy = client.bucket().get_iam_policy(&bucket)?;
Sourcepub fn set_iam_policy(
&self,
bucket: &Bucket,
iam: &IamPolicy,
) -> Result<IamPolicy>
pub fn set_iam_policy( &self, bucket: &Bucket, iam: &IamPolicy, ) -> Result<IamPolicy>
Updates the IAM Policy for this bucket.
§Example
use cloud_storage::sync::Client;
use cloud_storage::Bucket;
use cloud_storage::bucket::{IamPolicy, Binding, IamRole, StandardIamRole, Entity};
let client = Client::new()?;
let bucket = client.bucket().read("cloud-storage-rs-doc-5")?;
let iam_policy = IamPolicy {
version: 1,
bindings: vec![
Binding {
role: IamRole::Standard(StandardIamRole::ObjectViewer),
members: vec!["allUsers".to_string()],
condition: None,
}
],
..Default::default()
};
let policy = client.bucket().set_iam_policy(&bucket, &iam_policy)?;
Sourcepub fn test_iam_permission(
&self,
bucket: &Bucket,
permission: &str,
) -> Result<TestIamPermission>
pub fn test_iam_permission( &self, bucket: &Bucket, permission: &str, ) -> Result<TestIamPermission>
Checks whether the user provided in the service account has this permission.
§Example
use cloud_storage::sync::Client;
use cloud_storage::Bucket;
let client = Client::new()?;
let bucket = client.bucket().read("my-bucket")?;
client.bucket().test_iam_permission(&bucket, "storage.buckets.get")?;