B4X
B4X
Google Cloud Storage List Bucket Objects
See more Google Cloud Storage Examples
List the objects in a Google Cloud Storage bucket.Chilkat B4X Downloads
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"
' 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..
Dim sbToken As ChilkatStringBuilder
sbToken.Initialize
sbToken.LoadFile("qa_data/tokens/googleCloudStorageAccessToken.txt", "utf-8")
Dim http As ChilkatHttp
http.Initialize("http")
http.AuthToken = sbToken.GetAsString
' For more info see Cloud Storage Documentation - Objects: list
'
success = http.SetUrlVar("bucket", "chilkat-ocean")
success = http.SetUrlVar("PROJECT_NAME", "ChilkatCloud")
Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpNoBody("GET", "https://www.googleapis.com/storage/v1/b/{$bucket}/o?project={$ChilkatCloud}", 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#objects",
' "items": [
' {
' "kind": "storage#object",
' "id": "chilkat-ocean/file with space char.jpg/1555776690752366",
' "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-ocean/o/file%20with%20space%20char.jpg",
' "mediaLink": "https://www.googleapis.com/download/storage/v1/b/chilkat-ocean/o/file%20with%20space%20char.jpg?generation=1555776690752366&alt=media",
' "name": "file with space char.jpg",
' "bucket": "chilkat-ocean",
' "generation": "1555776690752366",
' "metageneration": "1",
' "contentType": "image/jpeg",
' "storageClass": "MULTI_REGIONAL",
' "size": "6229",
' "md5Hash": "LpxZ2/JmI2fcl9/dqF2gSA==",
' "crc32c": "9RjgwQ==",
' "etag": "CO6WguiH3+ECEAE=",
' "timeCreated": "2019-04-20T16:11:30.752Z",
' "updated": "2019-04-20T16:11:30.752Z",
' "timeStorageClassUpdated": "2019-04-20T16:11:30.752Z"
' },
' {
' "kind": "storage#object",
'
' "id": "chilkat-ocean/penguins.jpg/1555775749593296",
' "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-ocean/o/penguins.jpg",
' "mediaLink": "https://www.googleapis.com/download/storage/v1/b/chilkat-ocean/o/penguins.jpg?generation=1555775749593296&alt=media",
' "name": "penguins.jpg",
' "bucket": "chilkat-ocean",
' "generation": "1555775749593296",
' "metageneration": "1",
' "contentType": "image/jpeg",
' "storageClass": "MULTI_REGIONAL",
' "size": "777835",
' "md5Hash": "nTd7EM53jEk4s8fixjoimg==",
' "crc32c": "ixxYVw==",
' "etag": "CNCxnqeE3+ECEAE=",
' "timeCreated": "2019-04-20T15:55:49.593Z",
' "updated": "2019-04-20T15:55:49.593Z",
' "timeStorageClassUpdated": "2019-04-20T15:55:49.593Z"
' },
' {
' "kind": "storage#object",
' "id": "chilkat-ocean/starfish.jpg/1628958192639968",
' "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-ocean/o/starfish.jpg",
' "mediaLink": "https://www.googleapis.com/download/storage/v1/b/chilkat-ocean/o/starfish.jpg?generation=1628958192639968&alt=media",
' "name": "starfish.jpg",
' "bucket": "chilkat-ocean",
' "generation": "1628958192639968",
' "metageneration": "1",
' "contentType": "image/jpeg",
' "storageClass": "MULTI_REGIONAL",
' "size": "6229",
' "md5Hash": "LpxZ2/JmI2fcl9/dqF2gSA==",
' "crc32c": "9RjgwQ==",
' "etag": "COC/tJP2sPICEAE=",
' "timeCreated": "2021-08-14T16:23:12.660Z",
' "updated": "2021-08-14T16:23:12.660Z",
' "timeStorageClassUpdated": "2021-08-14T16:23:12.660Z"
' }
' ]
' }
' Use this online tool to generate parsing code from sample JSON:
' Generate Parsing Code from JSON
Dim id As String
Dim selfLink As String
Dim mediaLink As String
Dim name As String
Dim bucket As String
Dim generation As String
Dim metageneration As String
Dim contentType As String
Dim storageClass As String
Dim size As String
Dim md5Hash As String
Dim crc32c As String
Dim etag As String
Dim timeCreated As String
Dim updated As String
Dim timeStorageClassUpdated As String
Dim kind As String = json.StringOf("kind")
Dim i As Int = 0
Dim count_i As Int = 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")
mediaLink = json.StringOf("items[i].mediaLink")
name = json.StringOf("items[i].name")
bucket = json.StringOf("items[i].bucket")
generation = json.StringOf("items[i].generation")
metageneration = json.StringOf("items[i].metageneration")
contentType = json.StringOf("items[i].contentType")
storageClass = json.StringOf("items[i].storageClass")
size = json.StringOf("items[i].size")
md5Hash = json.StringOf("items[i].md5Hash")
crc32c = json.StringOf("items[i].crc32c")
etag = json.StringOf("items[i].etag")
timeCreated = json.StringOf("items[i].timeCreated")
updated = json.StringOf("items[i].updated")
timeStorageClassUpdated = json.StringOf("items[i].timeStorageClassUpdated")
i = i + 1
Loop