Perl
Perl
Bunny Sign URL and then Download using Signed URL
See more Bunny CDN Examples
Shows how to sign a URL for BunnyCDN Token Authentication and then use it to download.Chilkat Perl Downloads
use chilkat();
$success = 0;
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$mySecurityKey = "e7ea8d73-8fa0-44ef-a2cc-91526f7df5ed";
$url = "https://test.b-cdn.net/sample-pdf-with-images.pdf";
# Extract the URL components.
$urlObj = chilkat::CkUrl->new();
$urlObj->ParseUrl($url);
$url_scheme = "https";
if ($urlObj->get_Ssl() == 0) {
$url_scheme = "http";
}
$url_host = $urlObj->host();
$url_path = $urlObj->path();
# Calculate an expiration time 1 hour from the current date/time.
$expTime = chilkat::CkDateTime->new();
$expTime->SetFromCurrentSystemTime();
$expTime->AddSeconds(3600);
$expires = $expTime->getAsUnixTimeStr(0);
print "Expires = " . $expires . "\r\n";
# Create the string to hash
$sbToHash = chilkat::CkStringBuilder->new();
$sbToHash->Append($mySecurityKey);
$sbToHash->Append($url_path);
$sbToHash->Append($expires);
# Base64Url encoding is the same as base64, except "-" is used instead of "+",
# "_" is used instead of "/", and no "=" padding is added.
$token = $sbToHash->getHash("sha256","base64Url","utf-8");
$sbSignedUrl = chilkat::CkStringBuilder->new();
$sbSignedUrl->Append($url_scheme);
$sbSignedUrl->Append("://");
$sbSignedUrl->Append($url_host);
$sbSignedUrl->Append($url_path);
$sbSignedUrl->Append("?token=");
$sbSignedUrl->Append($token);
$sbSignedUrl->Append("&expires=");
$sbSignedUrl->Append($expires);
$signedUrl = $sbSignedUrl->getAsString();
print "Signed URL: " . $signedUrl . "\r\n";
# Use the signed URL to download the file.
$http = chilkat::CkHttp->new();
$success = $http->Download($signedUrl,"c:/aaworkarea/sample.pdf");
if ($success == 0) {
print $http->lastErrorText() . "\r\n";
}
else {
print "Success." . "\r\n";
}