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) Create S3 Pre-Signed URL for UploadDemonstrates how to generate a pre-signed URL for S3 uploads.
-- 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 requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. -- Note: This example requires Chilkat v9.5.0.83 or greater. DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END EXEC sp_OASetProperty @http, 'AwsAccessKey', 'AWS_ACCESS_KEY' EXEC sp_OASetProperty @http, 'AwsSecretKey', 'AWS_SECRET_KEY' -- Make sure to set your AWS region correctly EXEC sp_OASetProperty @http, 'AwsRegion', 'us-east-1' DECLARE @bucketName nvarchar(4000) SELECT @bucketName = 'chilkat200' DECLARE @objectName nvarchar(4000) SELECT @objectName = 'starfish/starfish.jpg' DECLARE @awsService nvarchar(4000) SELECT @awsService = 's3' DECLARE @httpVerb nvarchar(4000) SELECT @httpVerb = 'PUT' -- The signed URL will be valid for this number of seconds: DECLARE @numSecondsValid int SELECT @numSecondsValid = 86400 -- Choose between a URL beginning with "http://" or "https://"... DECLARE @bUseHttps int SELECT @bUseHttps = 0 -- Generate the pre-signed URL DECLARE @preSignedUrl nvarchar(4000) EXEC sp_OAMethod @http, 'S3_GenPresignedUrl', @preSignedUrl OUT, @httpVerb, @bUseHttps, @bucketName, @objectName, @numSecondsValid, @awsService EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 = 0 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http RETURN END PRINT 'Presigned URL for Upload: ' + @preSignedUrl -- Here's an example of a pre-signed URL -- -- http://chilkat200.s3.amazonaws.com/starfish/starfish.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIBJLOVZVXAU2AFUA%2F20200623%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200623T234049Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=xxxxxeaea071178d772856c0a4e4c0114a8d9992f0d0812955e490d0exxxxxxx -- -- You can use the pre-signed URL to upload from Chilkat -- For example, upload by streaming from a local file DECLARE @resp int EXEC sp_OAMethod @http, 'PFile', @resp OUT, 'PUT', @preSignedUrl, 'qa_data/jpg/starfish.jpg', 'image/jpg', 0, 0 EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 = 0 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @http RETURN END EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT PRINT 'response status code = ' + @iTmp0 EXEC sp_OAGetProperty @resp, 'ContentLength', @iTmp0 OUT PRINT 'response body size: ' + @iTmp0 EXEC sp_OAGetProperty @resp, 'ContentLength', @iTmp0 OUT IF @iTmp0 > 0 BEGIN PRINT 'response body:' EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT PRINT @sTmp0 END EXEC @hr = sp_OADestroy @resp EXEC @hr = sp_OADestroy @http END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.