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
(SQL Server) 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
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @success int DECLARE @mySecurityKey nvarchar(4000) SELECT @mySecurityKey = 'e7ea8d73-8fa0-44ef-a2cc-91526f7df5ed' DECLARE @url nvarchar(4000) SELECT @url = 'https://test.b-cdn.net/sample-pdf-with-images.pdf' -- Extract the URL components. DECLARE @urlObj int -- Use "Chilkat_9_5_0.Url" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Url', @urlObj OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END EXEC sp_OAMethod @urlObj, 'ParseUrl', @success OUT, @url DECLARE @url_scheme nvarchar(4000) SELECT @url_scheme = 'https' EXEC sp_OAGetProperty @urlObj, 'Ssl', @iTmp0 OUT IF @iTmp0 = 0 BEGIN SELECT @url_scheme = 'http' END DECLARE @url_host nvarchar(4000) EXEC sp_OAGetProperty @urlObj, 'Host', @url_host OUT DECLARE @url_path nvarchar(4000) EXEC sp_OAGetProperty @urlObj, 'Path', @url_path OUT -- Calculate an expiration time 1 hour from the current date/time. DECLARE @expTime int -- Use "Chilkat_9_5_0.CkDateTime" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @expTime OUT EXEC sp_OAMethod @expTime, 'SetFromCurrentSystemTime', @success OUT EXEC sp_OAMethod @expTime, 'AddSeconds', @success OUT, 3600 DECLARE @expires nvarchar(4000) EXEC sp_OAMethod @expTime, 'GetAsUnixTimeStr', @expires OUT, 0 PRINT 'Expires = ' + @expires -- Create the string to hash DECLARE @sbToHash int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbToHash OUT EXEC sp_OAMethod @sbToHash, 'Append', @success OUT, @mySecurityKey EXEC sp_OAMethod @sbToHash, 'Append', @success OUT, @url_path EXEC sp_OAMethod @sbToHash, 'Append', @success OUT, @expires -- Base64Url encoding is the same as base64, except "-" is used instead of "+", -- "_" is used instead of "/", and no "=" padding is added. DECLARE @token nvarchar(4000) EXEC sp_OAMethod @sbToHash, 'GetHash', @token OUT, 'sha256', 'base64Url', 'utf-8' DECLARE @sbSignedUrl int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbSignedUrl OUT EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, @url_scheme EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, '://' EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, @url_host EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, @url_path EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, '?token=' EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, @token EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, '&expires=' EXEC sp_OAMethod @sbSignedUrl, 'Append', @success OUT, @expires DECLARE @signedUrl nvarchar(4000) EXEC sp_OAMethod @sbSignedUrl, 'GetAsString', @signedUrl OUT PRINT 'Signed URL: ' + @signedUrl -- Use the signed URL to download the file. DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT EXEC sp_OAMethod @http, 'Download', @success OUT, @signedUrl, 'c:/aaworkarea/sample.pdf' IF @success = 0 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 END ELSE BEGIN PRINT 'Success.' END EXEC @hr = sp_OADestroy @urlObj EXEC @hr = sp_OADestroy @expTime EXEC @hr = sp_OADestroy @sbToHash EXEC @hr = sp_OADestroy @sbSignedUrl EXEC @hr = sp_OADestroy @http END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.