DataFlex
DataFlex
Create a Google Cloud Storage Bucket
See more Google Cloud Storage Examples
Demonstrates how to create a Google Cloud Storage bucket.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSbToken
Variant vJson
Handle hoJson
Handle hoHttp
String sUrl
Variant vResp
Handle hoResp
Integer iResponseCode
Handle hoJsonResp
Handle hoDt
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 a JSON that contains the following information, replacing [VALUES_IN_BRACKETS] with the appropriate values:
// {
// "name": "[BUCKET_NAME]",
// "location": "[BUCKET_LOCATION]",
// "storageClass": "[STORAGE_CLASS]"
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComUpdateString Of hoJson "name" "chilkat-ocean" To iSuccess
Get ComUpdateString Of hoJson "location" "us" To iSuccess
Get ComUpdateString Of hoJson "storageClass" "multi_regional" To iSuccess
// ---- Step 2
// Send a POST equivalent to this curl command
// curl -X POST --data-binary @[JSON_FILE_NAME].json \
// -H "Authorization: Bearer [OAUTH2_TOKEN]" \
// -H "Content-Type: application/json" \
// "https://www.googleapis.com/storage/v1/b?project=[PROJECT_ID]"
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 "project_id" "chilkat-176611" To iSuccess
Move "https://www.googleapis.com/storage/v1/b?project={$project_id}" 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 "POST" 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
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#bucket",
// "id": "chilkat-ocean",
// "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-ocean",
// "projectNumber": "933037264567",
// "name": "chilkat-ocean",
// "timeCreated": "2017-08-13T12:27:10.811Z",
// "updated": "2017-08-13T12:27:10.811Z",
// "metageneration": "1",
// "location": "US",
// "storageClass": "MULTI_REGIONAL",
// "etag": "CAE="
// }
//
// Parse the JSON response:
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonResp
If (Not(IsComObjectCreated(hoJsonResp))) Begin
Send CreateComObject of hoJsonResp
End
Get ComBodyStr Of hoResp To sTemp1
Get ComLoad Of hoJsonResp sTemp1 To iSuccess
Get ComStringOf Of hoJsonResp "name" To sTemp1
Showln "name: " sTemp1
Get ComStringOf Of hoJsonResp "timeCreated" To sTemp1
Showln "timeCreated: " sTemp1
// Parse the date/time created.
Get Create (RefClass(cComCkDateTime)) To hoDt
If (Not(IsComObjectCreated(hoDt))) Begin
Send CreateComObject of hoDt
End
Get ComStringOf Of hoJsonResp "timeCreated" To sTemp1
Get ComSetFromTimestamp Of hoDt sTemp1 To iSuccess
// ...
End_Procedure