Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Node.js) Bunny Sign URL and then Download using Signed URLSee more Bunny CDN ExamplesShows how to sign a URL for BunnyCDN Token Authentication and then use it to download. For more information, see https://support.bunny.net/hc/en-us/articles/360016055099-How-to-sign-URLs-for-BunnyCDN-Token-Authentication
var os = require('os'); if (os.platform() == 'win32') { if (os.arch() == 'ia32') { var chilkat = require('@chilkat/ck-node21-win-ia32'); } else { var chilkat = require('@chilkat/ck-node21-win64'); } } else if (os.platform() == 'linux') { if (os.arch() == 'arm') { var chilkat = require('@chilkat/ck-node21-arm'); } else if (os.arch() == 'x86') { var chilkat = require('@chilkat/ck-node21-linux32'); } else { var chilkat = require('@chilkat/ck-node21-linux64'); } } else if (os.platform() == 'darwin') { if (os.arch() == 'arm64') { var chilkat = require('@chilkat/ck-node21-mac-m1'); } else { var chilkat = require('@chilkat/ck-node21-macosx'); } } function chilkatExample() { // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. var success; var mySecurityKey = "e7ea8d73-8fa0-44ef-a2cc-91526f7df5ed"; var url = "https://test.b-cdn.net/sample-pdf-with-images.pdf"; // Extract the URL components. var urlObj = new chilkat.Url(); urlObj.ParseUrl(url); var url_scheme = "https"; if (urlObj.Ssl == false) { url_scheme = "http"; } var url_host = urlObj.Host; var url_path = urlObj.Path; // Calculate an expiration time 1 hour from the current date/time. var expTime = new chilkat.CkDateTime(); expTime.SetFromCurrentSystemTime(); expTime.AddSeconds(3600); var expires = expTime.GetAsUnixTimeStr(false); console.log("Expires = " + expires); // Create the string to hash var sbToHash = new 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. var token = sbToHash.GetHash("sha256","base64Url","utf-8"); var sbSignedUrl = new 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); var signedUrl = sbSignedUrl.GetAsString(); console.log("Signed URL: " + signedUrl); // Use the signed URL to download the file. var http = new chilkat.Http(); success = http.Download(signedUrl,"c:/aaworkarea/sample.pdf"); if (success == false) { console.log(http.LastErrorText); } else { console.log("Success."); } } chilkatExample(); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.