![]() |
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) Manage Bucket Storage ClassSee more Google Cloud Storage ExamplesDemonstrates how to manage a bucket's default storage class.See Cloud Storage Classes for information about storage classes. Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoSbToken Variant vJson Handle hoJson Handle hoHttp 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 // ---- Step 1 // Create the JSON body of the PUT request that will be sent. // { // "storageClass": "[STORAGE_CLASS]" // } // Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End // Be careful if using the "regional" storage class. See the note below about the 400 error response. Get ComUpdateString Of hoJson "storageClass" "nearline" To iSuccess // ---- Step 2 // Send a PUT equivalent to this curl command // curl -X PUT --data-binary @[JSON_FILE_NAME].json \ // -H "Authorization: Bearer [OAUTH2_TOKEN]" \ // -H "Content-Type: application/json" \ // "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=storageClass" 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 Get ComSetUrlVar Of hoHttp "bucket_name" "chilkat-ocean" To iSuccess Move "https://www.googleapis.com/storage/v1/b/{$bucket_name}?fields=storageClass" To sUrl Get Create (RefClass(cComChilkatHttpResponse)) To hoResp If (Not(IsComObjectCreated(hoResp))) Begin Send CreateComObject of hoResp End Get pvComObject of hoJson to vJson Get pvComObject of hoResp to vResp Get ComHttpJson Of hoHttp "PUT" sUrl vJson "application/json" 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 // On my first try at running this code, I received the following error response: // Response code: 400 // Response body // { // "error": { // "errors": [ // { // "domain": "global", // "reason": "invalid", // "message": "The combination of locationConstraint and storageClass you provided is not supported for your project" // } // ], // "code": 400, // "message": "The combination of locationConstraint and storageClass you provided is not supported for your project" // } // } // // This was because my storage location was a Multi-regional location, and I tried to assign the "regional" storage class, // which is not allowed. Showln "Response code: " iResponseCode Showln "Response body" Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 // A response code = 200 indicates success, and the response body contains the JSON // // Response code: 200 // Response body // { // "storageClass": "NEARLINE" // } // End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.