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