add generate_oss_signed_url
This commit is contained in:
35
src/main.rs
35
src/main.rs
@@ -1,3 +1,38 @@
|
||||
fn main() {
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user