1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Simple access to Amazon Web Service's (AWS) Simple Storage Service (S3)
#![forbid(unsafe_code)]

#[macro_use]
extern crate serde_derive;
use serde_xml_rs as serde_xml;
#[macro_use]
extern crate log;


pub use awsregion as region;
pub use awscreds as creds;

pub mod bucket;
pub mod command;
pub mod serde_types;
pub mod signing;
pub mod deserializer;
#[cfg(any(feature = "async", feature = "async-rustls"))]
pub mod request_async;
#[cfg(any(feature = "sync", feature = "sync-rustls", feature = "wasm"))]
pub mod request_sync;

simpl::err!(S3Error, {
    Xml@serde_xml::Error;
    Hmac@hmac::crypto_mac::InvalidKeyLength;
    Utf8@std::str::Utf8Error;
    Io@std::io::Error;
    Region@awsregion::AwsRegionError;
    Creds@awscreds::AwsCredsError;
    UrlParse@url::ParseError;
    Http@http::header::InvalidHeaderValue;
    ToStrHttp@http::header::ToStrError;
    
});

const LONG_DATE: &str = "%Y%m%dT%H%M%SZ";
const EMPTY_PAYLOAD_SHA: &str = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";