![]() |
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 Filename with SPACE Chars to Google Cloud StorageDemonstrates how to upload a file with SPACE chars in the name 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 Handle hoSbPath Integer iNumReplaced Variant vReq Handle hoReq 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 Get ComGetAsString Of hoSbToken To sTemp1 Set ComAuthToken Of hoHttp To sTemp1 // Use %20 for the SPACE chars in the path. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbPath If (Not(IsComObjectCreated(hoSbPath))) Begin Send CreateComObject of hoSbPath End Get ComAppend Of hoSbPath "/upload/storage/v1/b/bucket_name/o?uploadType=media&name=file%20with%20space%20char.jpg" To iSuccess Get ComReplace Of hoSbPath "bucket_name" "chilkat-ocean" To iNumReplaced Get Create (RefClass(cComChilkatHttpRequest)) To hoReq If (Not(IsComObjectCreated(hoReq))) Begin Send CreateComObject of hoReq End Set ComHttpVerb Of hoReq To "POST" Get ComGetAsString Of hoSbPath To sTemp1 Set ComPath Of hoReq To sTemp1 Set ComContentType Of hoReq To "image/jpeg" // Indicate the file to be streamed in the request body when the HTTP POST is sent. // Use SPACE chars directly in the local file path. Get ComStreamBodyFromFile Of hoReq "qa_data/jpg/file with space char.jpg" To iSuccess Get Create (RefClass(cComChilkatHttpResponse)) To hoResp If (Not(IsComObjectCreated(hoResp))) Begin Send CreateComObject of hoResp End Get pvComObject of hoReq to vReq Get pvComObject of hoResp to vResp Get ComHttpSReq Of hoHttp "www.googleapis.com" 443 True vReq 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/file with space char.jpg/1502643657837855", // "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-ocean/o/file with space char.jpg", // "name": "file with space char.jpg", // "bucket": "chilkat-ocean", // "generation": "1502643657837855", // "metageneration": "1", // "contentType": "image/jpeg", // "timeCreated": "2017-08-13T17:00:57.811Z", // "updated": "2017-08-13T17:00:57.811Z", // "storageClass": "MULTI_REGIONAL", // "timeStorageClassUpdated": "2017-08-13T17:00:57.811Z", // "size": "777835", // "md5Hash": "nTd7EM53jEk4s8fixjoimg==", // "mediaLink": "https://www.googleapis.com/download/storage/v1/b/chilkat-ocean/o/file with space char.jpg?generation=1502643657837855&alt=media", // "crc32c": "ixxYVw==", // "etag": "CJ+azOvX1NUCEAE=" // } End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.