![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Upload In-Memory Binary Data to Google Cloud StorageDemonstrates how to upload in-memory binary data to Google Cloud Storage. Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoSbToken Handle hoHttp String sJpgUrl Variant vJpgData Handle hoJpgData String sUrl Variant vResp Handle hoResp Integer iResponseCode String sTemp1 Move False To iSuccess // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // This example uses a previously obtained access token having permission for the // scope "https://www.googleapis.com/auth/cloud-platform" // In this example, Get Google Cloud Storage OAuth2 Access Token, // the service account access token was saved to a text file. This example fetches the access token from the file.. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbToken If (Not(IsComObjectCreated(hoSbToken))) Begin Send CreateComObject of hoSbToken End Get ComLoadFile Of hoSbToken "qa_data/tokens/googleCloudStorageAccessToken.txt" "utf-8" To iSuccess // Send a POST equivalent to this curl command. // The content of the file is contained in the request body. // curl -X POST --data-binary @[OBJECT] \ // -H "Authorization: Bearer [OAUTH2_TOKEN]" \ // -H "Content-Type: [OBJECT_CONTENT_TYPE]" \ // "https://www.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o?uploadType=media&name=[OBJECT_NAME]" Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End // Download a JPG image from the Internet, and then upload this JPG to // a Google Storage bucket. Move "https://www.chilkatsoft.com/images/starfish.jpg" To sJpgUrl Get Create (RefClass(cComChilkatBinData)) To hoJpgData If (Not(IsComObjectCreated(hoJpgData))) Begin Send CreateComObject of hoJpgData End Get pvComObject of hoJpgData to vJpgData Get ComDownloadBd Of hoHttp sJpgUrl vJpgData To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComGetAsString Of hoSbToken To sTemp1 Set ComAuthToken Of hoHttp To sTemp1 // Construct a URL to upload to an object named "starfish.jpg" in the "chilkat-ocean" bucket. Get ComSetUrlVar Of hoHttp "bucket_name" "chilkat-ocean" To iSuccess Get ComSetUrlVar Of hoHttp "object_name" "starfish.jpg" To iSuccess Move "https://www.googleapis.com/upload/storage/v1/b/{$bucket_name}/o?uploadType=media&name={$object_name}" To sUrl Get Create (RefClass(cComChilkatHttpResponse)) To hoResp If (Not(IsComObjectCreated(hoResp))) Begin Send CreateComObject of hoResp End Get pvComObject of hoJpgData to vJpgData Get pvComObject of hoResp to vResp Get ComHttpBd Of hoHttp "POST" sUrl vJpgData "image/jpeg" vResp To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get ComStatusCode Of hoResp To iResponseCode If (iResponseCode = 401) Begin Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Showln "If invalid credentials, then it is likely the access token expired." Showln "Your app should automatically fetch a new access token and re-try." Procedure_Return End Showln "Response code: " iResponseCode Showln "Response body" Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 // A successful response looks like this: // Response code: 200 // Response body // { // "kind": "storage#object", // "id": "chilkat-ocean/starfish.jpg/1502670320090292", // "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-ocean/o/starfish.jpg", // "name": "starfish.jpg", // "bucket": "chilkat-ocean", // "generation": "1502670320090292", // "metageneration": "1", // "contentType": "image/jpeg", // "timeCreated": "2017-08-14T00:25:20.040Z", // "updated": "2017-08-14T00:25:20.040Z", // "storageClass": "MULTI_REGIONAL", // "timeStorageClassUpdated": "2017-08-14T00:25:20.040Z", // "size": "6229", // "md5Hash": "LpxZ2/JmI2fcl9/dqF2gSA==", // "mediaLink": "https://www.googleapis.com/download/storage/v1/b/chilkat-ocean/o/starfish.jpg?generation=1502670320090292&alt=media", // "crc32c": "9RjgwQ==", // "etag": "CLT5kpW71dUCEAE=" // } End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.