add generate_oss_signed_url

This commit is contained in:
2019-11-24 19:26:37 +08:00
parent 7e36b931af
commit d370cd29e0

View File

@@ -1,3 +1,38 @@
fn main() { fn main() {
println!("Hello, world!"); println!("Hello, world!");
println!("{}", generate_oss_signed_url("", "", "", "", "", 1_u64, true));
} }
// https://help.aliyun.com/document_detail/31952.html
// Signature = urlencode(base64(hmac-sha1(AccessKeySecret,
// VERB + "\n"
// + CONTENT-MD5 + "\n"
// + CONTENT-TYPE + "\n"
// + EXPIRES + "\n"
// + CanonicalizedOSSHeaders
// + CanonicalizedResource)))
// https://git.hatter.ink/hatter/oss-backupd/wiki/Signed-OSS-URL
fn generate_oss_signed_url(endpoint: &str, access_key_id: &str, access_key_secret: &str,
bucket_name: &str, key: &str, expire_in_seconds: u64, is_http: bool) -> String {
let mut signed_url = String::new();
signed_url.push_str(if is_http {
"http://"
} else {
"https://"
});
signed_url.push_str(bucket_name);
signed_url.push_str(".");
signed_url.push_str(endpoint);
signed_url.push_str("/");
signed_url.push_str(key);
signed_url.push_str("?Expires=");
// TODO
signed_url.push_str("&OSSAccessKeyId=");
// TODO
signed_url.push_str("&Signature=");
// TODO
signed_url
}