add generate_oss_signed_url
This commit is contained in:
35
src/main.rs
35
src/main.rs
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user