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
(Objective-C) 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
#import <NSString.h> #import <CkoUrl.h> #import <CkoDateTime.h> #import <CkoStringBuilder.h> #import <CkoHttp.h> // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. BOOL success; NSString *mySecurityKey = @"e7ea8d73-8fa0-44ef-a2cc-91526f7df5ed"; NSString *url = @"https://test.b-cdn.net/sample-pdf-with-images.pdf"; // Extract the URL components. CkoUrl *urlObj = [[CkoUrl alloc] init]; [urlObj ParseUrl: url]; NSString *url_scheme = @"https"; if (urlObj.Ssl == NO) { url_scheme = @"http"; } NSString *url_host = urlObj.Host; NSString *url_path = urlObj.Path; // Calculate an expiration time 1 hour from the current date/time. CkoDateTime *expTime = [[CkoDateTime alloc] init]; [expTime SetFromCurrentSystemTime]; [expTime AddSeconds: [NSNumber numberWithInt: 3600]]; NSString *expires = [expTime GetAsUnixTimeStr: NO]; NSLog(@"%@%@",@"Expires = ",expires); // Create the string to hash CkoStringBuilder *sbToHash = [[CkoStringBuilder alloc] init]; [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. NSString *token = [sbToHash GetHash: @"sha256" encoding: @"base64Url" charset: @"utf-8"]; CkoStringBuilder *sbSignedUrl = [[CkoStringBuilder alloc] init]; [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]; NSString *signedUrl = [sbSignedUrl GetAsString]; NSLog(@"%@%@",@"Signed URL: ",signedUrl); // Use the signed URL to download the file. CkoHttp *http = [[CkoHttp alloc] init]; success = [http Download: signedUrl saveToPath: @"c:/aaworkarea/sample.pdf"]; if (success == NO) { NSLog(@"%@",http.LastErrorText); } else { NSLog(@"%@",@"Success."); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.