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
(DataFlex) Use an Azure Service SASShows how to use an Azure Service SAS. (In this case, it is an SAS for a blob.)
Use ChilkatAx-win32.pkg Procedure Test Handle hoRest Boolean iBTls Integer iPort Boolean iBAutoReconnect Boolean iSuccess Handle hoSbToken Variant vBinData Handle hoBinData Variant vSbResponse Handle hoSbResponse String sTemp1 Integer iTemp1 // Azure Blob Service Example: Upload binary bytes to a block blob. // This uses a Service SAS for Authorization. // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatRest)) To hoRest If (Not(IsComObjectCreated(hoRest))) Begin Send CreateComObject of hoRest End // Connect to the Azure Storage Blob Service Move True To iBTls Move 443 To iPort Move True To iBAutoReconnect // In this example, the storage account name is "chilkat". Get ComConnect Of hoRest "chilkat.blob.core.windows.net" iPort iBTls iBAutoReconnect To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End // ---------------------------------------------------------------------------------------------- // The code above this comment could be placed inside a function/subroutine within the application // because the connection does not need to be made for every request. Once the connection is made // the app may send many requests.. // ---------------------------------------------------------------------------------------------- // Note: The application does not need to explicitly set the following // headers: Content-Length, x-ms-date, Authorization. These headers // are automatically set by Chilkat. // Let's load a previously computed Azure Storage Account SAS token and use it. // See How to Create an Azure Service SAS Get Create (RefClass(cComChilkatStringBuilder)) To hoSbToken If (Not(IsComObjectCreated(hoSbToken))) Begin Send CreateComObject of hoSbToken End Get ComLoadFile Of hoSbToken "qa_data/tokens/azureStorageServiceSas.txt" "utf-8" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load SAS token." Procedure_Return End // Add the Shared Access Signature query params for authorization. Get ComGetAsString Of hoSbToken To sTemp1 Get ComAddQueryParams Of hoRest sTemp1 To iSuccess // IMPORTANT: Make sure to set the x-ms-blob-type header: Get ComAddHeader Of hoRest "x-ms-blob-type" "BlockBlob" To iSuccess // IMPORTANT: Make sure to add the x-ms-date header. // When the header name is "x-ms-date", Chilkat will recognize the keyword "NOW" // and will substitute the current system date/time formatted as required by Microsoft. Get ComAddHeader Of hoRest "x-ms-date" "NOW" To iSuccess // For this example, we'll just load a JPG file into memory.. Get Create (RefClass(cComChilkatBinData)) To hoBinData If (Not(IsComObjectCreated(hoBinData))) Begin Send CreateComObject of hoBinData End Get ComLoadFile Of hoBinData "qa_data/jpg/starfish.jpg" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load JPG file." Procedure_Return End // Note: The maximum size of a block blob created by uploading in a single step is 64MB. // For larger files, the upload must be broken up into blocks. There is another Chilkat example for that.. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponse If (Not(IsComObjectCreated(hoSbResponse))) Begin Send CreateComObject of hoSbResponse End Get pvComObject of hoBinData to vBinData Get pvComObject of hoSbResponse to vSbResponse Get ComFullRequestBd Of hoRest "PUT" "/mycontainer/starfish.jpg" vBinData vSbResponse To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRest To sTemp1 Showln sTemp1 Procedure_Return End // When successful, the Azure Storage service will respond with a 201 response status code, // with no response body. Get ComResponseStatusCode Of hoRest To iTemp1 If (iTemp1 <> 201) Begin // Examine the request/response to see what happened. Get ComResponseStatusCode Of hoRest To iTemp1 Showln "response status code = " iTemp1 Get ComResponseStatusText Of hoRest To sTemp1 Showln "response status text = " sTemp1 Get ComResponseHeader Of hoRest To sTemp1 Showln "response header: " sTemp1 Get ComGetAsString Of hoSbResponse To sTemp1 Showln "response body (if any): " sTemp1 Showln "---" Get ComLastRequestStartLine Of hoRest To sTemp1 Showln "LastRequestStartLine: " sTemp1 Get ComLastRequestHeader Of hoRest To sTemp1 Showln "LastRequestHeader: " sTemp1 Showln "Failed." Procedure_Return End Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.