From ec28212a8c38507a01692a6181ee5c0e656c019c Mon Sep 17 00:00:00 2001 From: Greg Whiteley Date: Sat, 22 Feb 2025 16:55:19 +1100 Subject: [PATCH] bucket: ensure Bucket::exists() honours 'dangereous' config --- s3/src/bucket.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/s3/src/bucket.rs b/s3/src/bucket.rs index bed16bf4b1..5732016d42 100644 --- a/s3/src/bucket.rs +++ b/s3/src/bucket.rs @@ -438,7 +438,15 @@ impl Bucket { credentials: Credentials, ) -> Result { let dummy_bucket = Bucket::new("", region, credentials)?.with_path_style(); - let request = RequestImpl::new(&dummy_bucket, "", Command::ListBuckets).await?; + dummy_bucket.list_buckets_().await + } + + /// Internally accessible non-static implementation of list_buckets + #[maybe_async::maybe_async] + async fn list_buckets_( + &self + ) -> Result { + let request = RequestImpl::new(self, "", Command::ListBuckets).await?; let response = request.response_data(false).await?; Ok(quick_xml::de::from_str::< @@ -479,9 +487,10 @@ impl Bucket { /// ``` #[maybe_async::maybe_async] pub async fn exists(&self) -> Result { - let credentials = self.credentials().await?; + let mut dummy_bucket = self.clone(); + dummy_bucket.name = "".into(); - let response = Self::list_buckets(self.region.clone(), credentials).await?; + let response = dummy_bucket.list_buckets_().await?; Ok(response .bucket_names()