Rust Requires Chilkat v11.0.0+
Rust
Create S3 Pre-Signed URL for Upload
See more Amazon S3 Examples
Demonstrates how to generate a pre-signed URL for S3 uploads.Chilkat Rust Downloads
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = chilkat::Http::new();
http.set_aws_access_key("AWS_ACCESS_KEY");
http.set_aws_secret_key("AWS_SECRET_KEY");
// Make sure to set your AWS region correctly
http.set_aws_region("us-east-1");
let bucket_name = "chilkat200".to_string();
let object_name = "starfish/starfish.jpg".to_string();
let aws_service = "s3".to_string();
let http_verb = "PUT".to_string();
// The signed URL will be valid for this number of seconds:
let num_seconds_valid = 86400;
// Choose between a URL beginning with "http://" or "https://"...
let b_use_https = true;
// Generate the pre-signed URL
let Ok(pre_signed_url) = http.s3_gen_presigned_url(&http_verb, b_use_https, &bucket_name, &object_name, num_seconds_valid, &aws_service) else {
println!("{}", http.last_error_text());
return;
};
println!("Presigned URL for Upload: {}", pre_signed_url);
// Here's an example of a pre-signed URL
//
// http://chilkat200.s3.amazonaws.com/starfish/starfish.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIBJLOVZVXAU2AFUA%2F20200623%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200623T234049Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=xxxxxeaea071178d772856c0a4e4c0114a8d9992f0d0812955e490d0exxxxxxx
//
// You can use the pre-signed URL to upload from Chilkat
// For example, upload by streaming from a local file
let resp = chilkat::HttpResponse::new();
if http.http_file("PUT", &pre_signed_url, "qa_data/jpg/starfish.jpg", "image/jpg", &resp).is_err() {
println!("{}", http.last_error_text());
return;
}
println!("response status code = {}", resp.status_code());
println!("response body size: {}", resp.content_length());
if resp.content_length() > 0 {
println!("response body:");
println!("{}", resp.body_str());
}