1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
use crate::bucket::Bucket;
use crate::command::Command;
use crate::error::S3Error;
use crate::request::RequestImpl;
use crate::request::{Request, ResponseData};
impl Bucket {
/// Delete existing `Bucket`
///
/// # Example
/// ```rust,no_run
/// use s3::Bucket;
/// use s3::creds::Credentials;
/// use anyhow::Result;
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
/// let bucket_name = "rust-s3-test";
/// let region = "us-east-1".parse().unwrap();
/// let credentials = Credentials::default().unwrap();
/// let bucket = Bucket::new(bucket_name, region, credentials).unwrap();
///
/// bucket.delete().await.unwrap();
///
/// # Ok(())
/// # }
/// ```
pub async fn delete(&self) -> Result<u16, S3Error> {
let command = Command::DeleteBucket;
let request = RequestImpl::new(self, "", command)?;
let response_data = request.response_data(false).await?;
Ok(response_data.status_code())
}
/// Delete file from an S3 path.
///
/// # Example:
///
/// ```no_run
/// use s3::bucket::Bucket;
/// use s3::creds::Credentials;
/// use anyhow::Result;
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
///
/// let bucket_name = "rust-s3-test";
/// let region = "us-east-1".parse()?;
/// let credentials = Credentials::default()?;
/// let bucket = Bucket::new(bucket_name, region, credentials)?;
///
/// let response_data = bucket.delete_object("/test.file").await?;
///
/// # Ok(())
/// # }
/// ```
pub async fn delete_object<S: AsRef<str>>(&self, path: S) -> Result<ResponseData, S3Error> {
let command = Command::DeleteObject;
let request = RequestImpl::new(self, path.as_ref(), command)?;
request.response_data(false).await
}
/// Delete tags from an S3 object.
///
/// # Example:
///
/// ```no_run
/// use s3::bucket::Bucket;
/// use s3::creds::Credentials;
/// use anyhow::Result;
///
/// # #[tokio::main]
/// # async fn main() -> Result<()> {
///
/// let bucket_name = "rust-s3-test";
/// let region = "us-east-1".parse()?;
/// let credentials = Credentials::default()?;
/// let bucket = Bucket::new(bucket_name, region, credentials)?;
///
/// let response_data = bucket.delete_object_tagging("/test.file").await?;
///
/// # Ok(())
/// # }
/// ```
pub async fn delete_object_tagging<S: AsRef<str>>(
&self,
path: S,
) -> Result<ResponseData, S3Error> {
let command = Command::DeleteObjectTagging;
let request = RequestImpl::new(self, path.as_ref(), command)?;
request.response_data(false).await
}
}