Getting Started
Get Object async
let oss_instance = OSS::new("your_AccessKeyId", "your_AccessKeySecret", "your_Endpoint", "your_Bucket");
let buf = oss_instance.get_object("objectName", None, None).await;
String::from_utf8(buf)?
Put Object by file
let filename = "filename";
let oss_instance = OSS::new("your_AccessKeyId", "your_AccessKeySecret", "your_Endpoint", "your_Bucket");
let result = oss_instance.put_object_from_file(filename, "object", None, None).await;
assert_eq!(result.is_ok(), true)
MultipartUpload for big file
let filename = "filename";
let oss_instance = OSS::new("your_AccessKeyId", "your_AccessKeySecret", "your_Endpoint", "your_Bucket");
let object_name = "object_name";
let file = "/tmp/tmp.txt";
let upload_id = oss_instance.initiate_multipart_upload(object_name, None::<HashMap<&str, &str>>).await.unwrap();
let chunks = split_file_by_part_size(file, 1024).await.unwrap();
let mut parts = vec![];
for chunk in chunks {
let etag = oss_instance.upload_part(file,object_name,chunk.clone(),upload_id.clone(),None::<HashMap<&str, &str>>).await.unwrap();
parts.push(Part {PartNumber: chunk.number,ETag: etag,});
}
let res = oss_instance.complete_multipart_upload(object_name,upload_id,CompleteMultipartUpload { Part: parts },None::<HashMap<&str, &str>>).await;
Delete Ojbect
let oss_instance = OSS::new("your_AccessKeyId", "your_AccessKeySecret", "your_Endpoint", "your_Bucket");
let result = oss_instance.delete_object("object").await;
assert_eq!(result.is_ok(), true)