Sample code for 30+ languages & platforms
B4X

Google Cloud Storage List Buckets

See more Google Cloud Storage Examples

Demonstrates how to retrieve a list of buckets for a given project.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

'  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"

Dim jsonToken As ChilkatJsonObject
jsonToken.Initialize
success = jsonToken.LoadFile("qa_data/tokens/googleCloudStorage.json")
If success = False Then
    Log(jsonToken.LastErrorText)
    Return
End If


Dim http As ChilkatHttp
http.Initialize("http")
http.AuthToken = jsonToken.StringOf("access_token")

'  For more info see Cloud Storage Documentation - Buckets: list 
'  
success = http.SetUrlVar("PROJECT_ID", "chilkattest-1050")
Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpNoBody("GET", "https://www.googleapis.com/storage/v1/b?project={$PROJECT_ID}", resp)
If success = False Then
    Log(http.LastErrorText)
    Return
End If


Dim responseCode As Int = resp.StatusCode
If responseCode = 401 Then
    Log(resp.BodyStr)
    Log("If invalid credentials, then it is likely the access token expired.")
    Log("Your app should automatically fetch a new access token and re-try.")
    Return
End If


Log("Response code: " & responseCode)
Log("Response body")

Dim json As ChilkatJsonObject
json.Initialize
success = json.Load(resp.BodyStr)

json.EmitCompact = False

Log(json.Emit)

'  A response code = 200 indicates success, and the response body contains JSON such as this:

'  {
'    "kind": "storage#buckets",
'    "items": [
'      {
'        "kind": "storage#bucket",
'        "id": "chilkat-bucket",
'        "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-bucket",
'        "projectNumber": "5332332985",
'        "name": "chilkat-bucket",
'        "timeCreated": "2018-10-23T00:04:44.507Z",
'        "updated": "2018-10-23T00:04:44.507Z",
'        "metageneration": "1",
'        "iamConfiguration": {
'          "bucketPolicyOnly": {
'            "enabled": false
'          }
'        },
'        "location": "US",
'        "storageClass": "MULTI_REGIONAL",
'        "etag": "CAE="
'      },
'      {
'        "kind": "storage#bucket",
'        "id": "chilkat-images",
'        "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-images",
'        "projectNumber": "5332332985",
'        "name": "chilkat-images",
'        "timeCreated": "2018-10-23T11:24:43.000Z",
'        "updated": "2018-10-23T11:24:43.000Z",
'        "metageneration": "1",
'        "iamConfiguration": {
'          "bucketPolicyOnly": {
'            "enabled": false
'          }
'        },
'        "location": "US",
'        "storageClass": "MULTI_REGIONAL",
'        "etag": "CAE="
'      }
'    ]
'  }

'  Use this online tool to generate parsing code from sample JSON: 
'  Generate Parsing Code from JSON

Dim kind As String
Dim i As Int
Dim count_i As Int
Dim id As String
Dim selfLink As String
Dim projectNumber As String
Dim name As String
Dim timeCreated As String
Dim updated As String
Dim metageneration As String
Dim iamConfigurationBucketPolicyOnlyEnabled As Boolean
Dim location As String
Dim storageClass As String
Dim etag As String

kind = json.StringOf("kind")
i = 0
count_i = json.SizeOfArray("items")
Do While i < count_i
    json.I = i
    kind = json.StringOf("items[i].kind")
    id = json.StringOf("items[i].id")
    selfLink = json.StringOf("items[i].selfLink")
    projectNumber = json.StringOf("items[i].projectNumber")
    name = json.StringOf("items[i].name")
    timeCreated = json.StringOf("items[i].timeCreated")
    updated = json.StringOf("items[i].updated")
    metageneration = json.StringOf("items[i].metageneration")
    iamConfigurationBucketPolicyOnlyEnabled = json.BoolOf("items[i].iamConfiguration.bucketPolicyOnly.enabled")
    location = json.StringOf("items[i].location")
    storageClass = json.StringOf("items[i].storageClass")
    etag = json.StringOf("items[i].etag")
    i = i + 1
Loop