Struct rusty_s3::Bucket

source ·
pub struct Bucket { /* private fields */ }
Expand description

An S3 bucket

Path style url

let endpoint = "https://s3.dualstack.eu-west-1.amazonaws.com".parse().expect("endpoint is a valid Url");
let path_style = UrlStyle::Path;
let name = "rusty-s3";
let region = "eu-west-1";

let bucket = Bucket::new(endpoint, path_style, name, region).expect("Url has a valid scheme and host");
assert_eq!(bucket.base_url().as_str(), "https://s3.dualstack.eu-west-1.amazonaws.com/rusty-s3/");
assert_eq!(bucket.name(), "rusty-s3");
assert_eq!(bucket.region(), "eu-west-1");
assert_eq!(bucket.object_url("duck.jpg").expect("url is valid").as_str(), "https://s3.dualstack.eu-west-1.amazonaws.com/rusty-s3/duck.jpg");

Domain style url

let endpoint = "https://s3.dualstack.eu-west-1.amazonaws.com".parse().expect("endpoint is a valid Url");
let path_style = UrlStyle::VirtualHost;
let name = "rusty-s3";
let region = "eu-west-1";

let bucket = Bucket::new(endpoint, path_style, name, region).expect("Url has a valid scheme and host");
assert_eq!(bucket.base_url().as_str(), "https://rusty-s3.s3.dualstack.eu-west-1.amazonaws.com/");
assert_eq!(bucket.name(), "rusty-s3");
assert_eq!(bucket.region(), "eu-west-1");
assert_eq!(bucket.object_url("duck.jpg").expect("url is valid").as_str(), "https://rusty-s3.s3.dualstack.eu-west-1.amazonaws.com/duck.jpg");

Implementations§

source§

impl Bucket

source

pub fn new( endpoint: Url, path_style: UrlStyle, name: impl Into<Cow<'static, str>>, region: impl Into<Cow<'static, str>> ) -> Result<Self, BucketError>

Construct a new S3 bucket

source

pub fn base_url(&self) -> &Url

Get the base url of this s3 Bucket

source

pub fn name(&self) -> &str

Get the name of this Bucket

source

pub fn region(&self) -> &str

Get the region of this Bucket

source

pub fn object_url(&self, object: &str) -> Result<Url, ParseError>

Generate an url to an object of this Bucket

This is not a signed url, it’s just the starting point for generating an url to an S3 object.

source§

impl Bucket

source

pub fn create_bucket<'a>( &'a self, credentials: &'a Credentials ) -> CreateBucket<'a>

Create a new bucket.

See CreateBucket for more details.

source

pub fn delete_bucket<'a>( &'a self, credentials: &'a Credentials ) -> DeleteBucket<'a>

Delete a bucket.

See DeleteBucket for more details.

source§

impl Bucket

source

pub fn head_object<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str ) -> HeadObject<'a>

Retrieve an object’s metadata from S3, using a HEAD request.

See HeadObject for more details.

source

pub fn head_bucket<'a>( &'a self, credentials: Option<&'a Credentials> ) -> HeadBucket<'a>

Retrieve an bucket’s metadata from S3, using a HEAD request.

See HeadBucket for more details.

source

pub fn get_object<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str ) -> GetObject<'a>

Retrieve an object from S3, using a GET request.

See GetObject for more details.

source

pub fn list_objects_v2<'a>( &'a self, credentials: Option<&'a Credentials> ) -> ListObjectsV2<'a>

List all objects in the bucket.

See ListObjectsV2 for more details.

source

pub fn put_object<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str ) -> PutObject<'a>

Upload a file to S3, using a PUT request.

See PutObject for more details.

source

pub fn delete_object<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str ) -> DeleteObject<'a>

Delete an object from S3, using a DELETE request.

See DeleteObject for more details.

source

pub fn delete_objects<'a, I>( &'a self, credentials: Option<&'a Credentials>, objects: I ) -> DeleteObjects<'a, I>

Delete multiple objects from S3 using a single POST request.

See DeleteObjects for more details.

source§

impl Bucket

source

pub fn create_multipart_upload<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str ) -> CreateMultipartUpload<'a>

Create a multipart upload.

See CreateMultipartUpload for more details.

source

pub fn upload_part<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str, part_number: u16, upload_id: &'a str ) -> UploadPart<'a>

Upload a part to a previously created multipart upload.

See UploadPart for more details.

source

pub fn complete_multipart_upload<'a, I>( &'a self, credentials: Option<&'a Credentials>, object: &'a str, upload_id: &'a str, etags: I ) -> CompleteMultipartUpload<'a, I>

Complete a multipart upload.

See CompleteMultipartUpload for more details.

source

pub fn abort_multipart_upload<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str, upload_id: &'a str ) -> AbortMultipartUpload<'a>

Abort multipart upload.

See AbortMultipartUpload for more details.

source

pub fn list_parts<'a>( &'a self, credentials: Option<&'a Credentials>, object: &'a str, upload_id: &'a str ) -> ListParts<'a>

Lists the parts that have been uploaded for a specific multipart upload.

See ListParts for more details.

Trait Implementations§

source§

impl Clone for Bucket

source§

fn clone(&self) -> Bucket

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Bucket

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Bucket

source§

fn eq(&self, other: &Bucket) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Bucket

source§

impl StructuralEq for Bucket

source§

impl StructuralPartialEq for Bucket

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.