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
impl Bucket
Sourcepub fn new(
endpoint: Url,
path_style: UrlStyle,
name: impl Into<Cow<'static, str>>,
region: impl Into<Cow<'static, str>>,
) -> Result<Self, BucketError>
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
§Errors
Returns a BucketError if the endpoint is not a valid url, or if the endpoint is missing the host.
Sourcepub fn object_url(&self, object: &str) -> Result<Url, ParseError>
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.
§Errors
Returns a ParseError if the object is not a valid path.
Source§impl Bucket
impl Bucket
Sourcepub const fn create_bucket<'a>(
&'a self,
credentials: &'a Credentials,
) -> CreateBucket<'a>
pub const fn create_bucket<'a>( &'a self, credentials: &'a Credentials, ) -> CreateBucket<'a>
Create a new bucket.
See CreateBucket for more details.
Sourcepub const fn delete_bucket<'a>(
&'a self,
credentials: &'a Credentials,
) -> DeleteBucket<'a>
pub const fn delete_bucket<'a>( &'a self, credentials: &'a Credentials, ) -> DeleteBucket<'a>
Delete a bucket.
See DeleteBucket for more details.
Source§impl Bucket
impl Bucket
Sourcepub const fn head_object<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
) -> HeadObject<'a>
pub const 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.
Sourcepub const fn head_bucket<'a>(
&'a self,
credentials: Option<&'a Credentials>,
) -> HeadBucket<'a>
pub const 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.
Sourcepub const fn get_object<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
) -> GetObject<'a>
pub const 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.
Sourcepub fn list_objects_v2<'a>(
&'a self,
credentials: Option<&'a Credentials>,
) -> ListObjectsV2<'a>
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.
Sourcepub const fn put_object<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
) -> PutObject<'a>
pub const 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.
Sourcepub const fn delete_object<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
) -> DeleteObject<'a>
pub const 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.
Sourcepub const fn delete_objects<'a, I>(
&'a self,
credentials: Option<&'a Credentials>,
objects: I,
) -> DeleteObjects<'a, I>
pub const 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
impl Bucket
Sourcepub const fn create_multipart_upload<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
) -> CreateMultipartUpload<'a>
pub const 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.
Sourcepub const fn upload_part<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
part_number: u16,
upload_id: &'a str,
) -> UploadPart<'a>
pub const 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.
Sourcepub const fn complete_multipart_upload<'a, I>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
upload_id: &'a str,
etags: I,
) -> CompleteMultipartUpload<'a, I>
pub const 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.
Sourcepub const fn abort_multipart_upload<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
upload_id: &'a str,
) -> AbortMultipartUpload<'a>
pub const 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.
Sourcepub const fn list_parts<'a>(
&'a self,
credentials: Option<&'a Credentials>,
object: &'a str,
upload_id: &'a str,
) -> ListParts<'a>
pub const 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.