Struct simple_aws_s3::s3::S3
source · pub struct S3 { /* private fields */ }
Expand description
Work with S3 via this struct
Example:
use simple_aws_s3::*;
use chrono::Duration;
const ACCESS_KEY: &str = "AKIAIOSFODNN7EXAMPLE";
const SECRET_KEY: &str = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";
const REGION: &str = "us-east-1";
const ENDPOINT: &str = "s3.amazonaws.com";
const BUCKET: &str = "examplebucket";
let s3 = S3::new(
BUCKET,
REGION,
ENDPOINT,
ACCESS_KEY,
SECRET_KEY,
);
let res = s3.generate_presigned_post("example.png".into(), "image/png", 10485760, Duration::seconds(3600), None).unwrap();
assert_eq!(res.upload_url, "https://us-east-1.s3.amazonaws.com/examplebucket");
assert!(res.params.contains_key("policy"));
assert!(res.params.contains_key(S3_CRED_KEY));
assert!(res.params.contains_key(S3_DATE_KEY));
assert!(res.params.contains_key(S3_SIGNATURE_KEY));
assert!(!res.params.contains_key("acl"));
// Generate Presigned Get: Link to download example.png, expire ons 1 hour
let download_url = s3.generate_presigned_get("example.png", 3600).unwrap();
println!("URL to download: {}", download_url);
// Get information of an object
let head_req = s3.head_object("example.png").await?;
// Delete an object
let delete_req = s3.delete_object("example.png").await?;
Implementations§
source§impl S3
impl S3
pub fn new( bucket: impl Into<String>, region: impl Into<String>, endpoint: impl Into<String>, access_key: impl Into<String>, secret_key: impl Into<String> ) -> Self
pub fn bucket_url(&self) -> String
pub async fn head_object(&self, key: &str) -> Result<Response, Error>
pub async fn delete_object(&self, key: &str) -> Result<Response, Error>
pub fn prepare_simple_object_method( &self, key: &str, method: Method ) -> Result<Request, InvalidKeyLength>
pub fn generate_presigned_post( &self, key: String, content_type: &str, content_length: i64, expire_on: Duration, acl: Option<&str> ) -> Result<PostPresignedInfo, InvalidKeyLength>
pub fn generate_presigned_get( &self, key: &str, expires_on: i32 ) -> Result<String, Error>
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for S3
impl Send for S3
impl Sync for S3
impl Unpin for S3
impl !UnwindSafe for S3
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more