Sample code for 30+ languages & platforms
PowerShell

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 PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

# 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 = New-Object Chilkat.Url
$urlObj.ParseUrl($url)

$url_scheme = "https"
if ($urlObj.Ssl -eq $false) {
    $url_scheme = "http"
}

$url_host = $urlObj.Host
$url_path = $urlObj.Path

# Calculate an expiration time 1 hour from the current date/time.
$expTime = New-Object Chilkat.CkDateTime
$expTime.SetFromCurrentSystemTime()
$expTime.AddSeconds(3600)
$expires = $expTime.GetAsUnixTimeStr($false)

$("Expires = " + $expires)

# Create the string to hash
$sbToHash = New-Object Chilkat.StringBuilder
$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 = New-Object Chilkat.StringBuilder
$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()
$("Signed URL: " + $signedUrl)

# Use the signed URL to download the file.
$http = New-Object Chilkat.Http
$success = $http.Download($signedUrl,"c:/aaworkarea/sample.pdf")
if ($success -eq $false) {
    $($http.LastErrorText)
}
else {
    $("Success.")
}