Visual FoxPro
Visual FoxPro
Google Cloud Storage List Bucket Objects
See more Google Cloud Storage Examples
List the objects in a Google Cloud Storage bucket.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSbToken
LOCAL loHttp
LOCAL loResp
LOCAL lnResponseCode
LOCAL loJson
LOCAL lcId
LOCAL lcSelfLink
LOCAL lcMediaLink
LOCAL lcName
LOCAL lcBucket
LOCAL lcGeneration
LOCAL lcMetageneration
LOCAL lcContentType
LOCAL lcStorageClass
LOCAL lcSize
LOCAL lcMd5Hash
LOCAL lcCrc32c
LOCAL lcEtag
LOCAL lcTimeCreated
LOCAL lcUpdated
LOCAL lcTimeStorageClassUpdated
LOCAL lcKind
LOCAL i
LOCAL lnCount_i
lnSuccess = 0
* 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..
loSbToken = CreateObject('Chilkat.StringBuilder')
loSbToken.LoadFile("qa_data/tokens/googleCloudStorageAccessToken.txt","utf-8")
loHttp = CreateObject('Chilkat.Http')
loHttp.AuthToken = loSbToken.GetAsString()
* For more info see Cloud Storage Documentation - Objects: list
*
lnSuccess = loHttp.SetUrlVar("bucket","chilkat-ocean")
lnSuccess = loHttp.SetUrlVar("PROJECT_NAME","ChilkatCloud")
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpNoBody("GET","https://www.googleapis.com/storage/v1/b/{$bucket}/o?project={$ChilkatCloud}",loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loSbToken
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
lnResponseCode = loResp.StatusCode
IF (lnResponseCode = 401) THEN
? loResp.BodyStr
? "If invalid credentials, then it is likely the access token expired."
? "Your app should automatically fetch a new access token and re-try."
RELEASE loSbToken
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
? "Response code: " + STR(lnResponseCode)
? "Response body"
loJson = CreateObject('Chilkat.JsonObject')
lnSuccess = loJson.Load(loResp.BodyStr)
loJson.EmitCompact = 0
? loJson.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
lcKind = loJson.StringOf("kind")
i = 0
lnCount_i = loJson.SizeOfArray("items")
DO WHILE i < lnCount_i
loJson.I = i
lcKind = loJson.StringOf("items[i].kind")
lcId = loJson.StringOf("items[i].id")
lcSelfLink = loJson.StringOf("items[i].selfLink")
lcMediaLink = loJson.StringOf("items[i].mediaLink")
lcName = loJson.StringOf("items[i].name")
lcBucket = loJson.StringOf("items[i].bucket")
lcGeneration = loJson.StringOf("items[i].generation")
lcMetageneration = loJson.StringOf("items[i].metageneration")
lcContentType = loJson.StringOf("items[i].contentType")
lcStorageClass = loJson.StringOf("items[i].storageClass")
lcSize = loJson.StringOf("items[i].size")
lcMd5Hash = loJson.StringOf("items[i].md5Hash")
lcCrc32c = loJson.StringOf("items[i].crc32c")
lcEtag = loJson.StringOf("items[i].etag")
lcTimeCreated = loJson.StringOf("items[i].timeCreated")
lcUpdated = loJson.StringOf("items[i].updated")
lcTimeStorageClassUpdated = loJson.StringOf("items[i].timeStorageClassUpdated")
i = i + 1
ENDDO
RELEASE loSbToken
RELEASE loHttp
RELEASE loResp
RELEASE loJson