rust-s3 icon indicating copy to clipboard operation
rust-s3 copied to clipboard

Checking for object existence

Open Palladinium opened this issue 1 year ago • 3 comments

Is your feature request related to a problem? Please describe. There is currently no way to check whether an object exists in a bucket. The README has a link to an exists function, but the method doesn't actually exist: https://github.com/durch/rust-s3/blob/5105a1bff57827f88fb90840f03193665ea34d68/README.md?plain=1#L77

Describe the solution you'd like Adding an exists method to the Bucket API.

Describe alternatives you've considered I've tried using get_object or head_object and checking for the error variant, but I have no idea which S3Error variant is returned when the object doesn't exist vs when anything else goes wrong with fetching the object's data.

Palladinium avatar Dec 24 '23 06:12 Palladinium

It looks like the error value returned when an object doesn't exist is S3Error::Http(404, _). It'd still be nice to get this as its own feature. Note that without the ListBucket permission, you will always get a 403 instead, and you tell whether an object doesn't exist or you just can't access it - this is by design in S3's API.

Palladinium avatar Dec 26 '23 02:12 Palladinium

I second this

LockedThread avatar Jul 25 '24 18:07 LockedThread

It looks like the error value returned when an object doesn't exist is S3Error::Http(404, _). It'd still be nice to get this as its own feature. Note that without the ListBucket permission, you will always get a 403 instead, and you tell whether an object doesn't exist or you just can't access it - this is by design in S3's API.

I cannot even see a way to get the StatusCode because we lose it in the InvalidStatusCode error creation.

LockedThread avatar Jul 25 '24 18:07 LockedThread