Visual FoxPro
Visual FoxPro
Bunny Edge Storage - List Files
See more Bunny CDN Examples
Retrieve a list of files and directories located in the given directory.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL loSbResponse
LOCAL lnStatusCode
LOCAL loJarr
LOCAL loJson
LOCAL lcGuid
LOCAL lcStorageZoneName
LOCAL lcPath
LOCAL lcObjectName
LOCAL lnLength
LOCAL lcLastChanged
LOCAL lnServerId
LOCAL lnArrayNumber
LOCAL lnIsDirectory
LOCAL lcUserId
LOCAL lcContentType
LOCAL lcDateCreated
LOCAL lnStorageZoneId
LOCAL lcChecksum
LOCAL lcReplicatedZones
LOCAL i
LOCAL lnCount_i
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
* Use the "Password" from the "FTP & HTTP API Access" console web page for your Bunny storage zone.
loHttp.SetRequestHeader("AccessKey","YOUR_FTP_AND_HTTP_PASSWORD")
* Storage Endpoints:
* The storage API endpoint depends on the primary storage region of your storage zone. You can also find this in the FTP & HTTP API Information of your storage zone.
* Falkenstein: storage.bunnycdn.com
* New York: ny.storage.bunnycdn.com
* Los Angeles: la.storage.bunnycdn.com
* Singapore: sg.storage.bunnycdn.com
* Sydney: syd.storage.bunnycdn.com
* London: uk.storage.bunnycdn.com
* ... (possibly others??)
loSbResponse = CreateObject('Chilkat.StringBuilder')
* Change the "storageZoneName" to your actual storage zone name.
lnSuccess = loHttp.QuickGetSb("https://uk.storage.bunnycdn.com/storageZoneName/testDir/",loSbResponse)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loSbResponse
CANCEL
ENDIF
lnStatusCode = loHttp.LastStatus
? "Status code = " + STR(lnStatusCode)
IF (lnStatusCode <> 200) THEN
? loSbResponse.GetAsString()
? "Failed."
RELEASE loHttp
RELEASE loSbResponse
CANCEL
ENDIF
loJarr = CreateObject('Chilkat.JsonArray')
loJarr.LoadSb(loSbResponse)
loJarr.EmitCompact = 0
? loJarr.Emit()
* Here is a sample response. Parsing code is shown below..
* [
* {
* "Guid": "ebd9ccff-faf7-449d-9c71-8662b9f3cf41",
* "StorageZoneName": "chilkat",
* "Path": "/chilkat/testDir/",
* "ObjectName": "seahorse.jpg",
* "Length": 24388,
* "LastChanged": "2023-04-21T15:59:08.382",
* "ServerId": 586,
* "ArrayNumber": 0,
* "IsDirectory": false,
* "UserId": "6d26ab35-2914-422c-9378-d51f38166e53",
* "ContentType": "",
* "DateCreated": "2023-04-21T15:59:08.382",
* "StorageZoneId": 266805,
* "Checksum": "0503558E7B4D141C067BEECFD06F87F6F58B81E37918310F82C7C4077D27BD1D",
* "ReplicatedZones": "SE,DE,LA,SG,JH,BR,SYD,NY"
* },
* {
* "Guid": "e74b85f8-4d5d-459e-a2fc-0fcfa8c926aa",
* "StorageZoneName": "chilkat",
* "Path": "/chilkat/testDir/",
* "ObjectName": "seal.jpg",
* "Length": 342708,
* "LastChanged": "2023-04-21T15:59:08.763",
* "ServerId": 586,
* "ArrayNumber": 2,
* "IsDirectory": false,
* "UserId": "6d26ab35-2914-422c-9378-d51f38166e53",
* "ContentType": "",
* "DateCreated": "2023-04-21T15:59:08.763",
* "StorageZoneId": 266805,
* "Checksum": "C95F946A0299CE39C20A072B3DC581446B2EE2D94CA93901B58604F4EFB8AAB5",
* "ReplicatedZones": "DE,SE,SG,LA,JH,BR,SYD,NY"
* },
* {
* "Guid": "ca80cdbd-c6cf-445d-b367-0b33de7ae65a",
* "StorageZoneName": "chilkat",
* "Path": "/chilkat/testDir/",
* "ObjectName": "university.jpg",
* "Length": 277581,
* "LastChanged": "2023-04-21T15:59:10.142",
* "ServerId": 586,
* "ArrayNumber": 0,
* "IsDirectory": false,
* "UserId": "6d26ab35-2914-422c-9378-d51f38166e53",
* "ContentType": "",
* "DateCreated": "2023-04-21T15:59:10.142",
* "StorageZoneId": 266805,
* "Checksum": "96A10EAA1B778C066739A6233206022DB219B67A8775401D7865F40E6DD83571",
* "ReplicatedZones": "DE,SE,SG,JH,BR,LA,SYD,NY"
* }
* ]
* Use this online tool to generate parsing code from sample JSON:
* Generate Parsing Code from JSON
i = 0
lnCount_i = loJarr.Size
DO WHILE i < lnCount_i
loJson = loJarr.ObjectAt(i)
lcGuid = loJson.StringOf("Guid")
lcStorageZoneName = loJson.StringOf("StorageZoneName")
lcPath = loJson.StringOf("Path")
lcObjectName = loJson.StringOf("ObjectName")
lnLength = loJson.IntOf("Length")
lcLastChanged = loJson.StringOf("LastChanged")
lnServerId = loJson.IntOf("ServerId")
lnArrayNumber = loJson.IntOf("ArrayNumber")
lnIsDirectory = loJson.BoolOf("IsDirectory")
lcUserId = loJson.StringOf("UserId")
lcContentType = loJson.StringOf("ContentType")
lcDateCreated = loJson.StringOf("DateCreated")
lnStorageZoneId = loJson.IntOf("StorageZoneId")
lcChecksum = loJson.StringOf("Checksum")
lcReplicatedZones = loJson.StringOf("ReplicatedZones")
RELEASE loJson
i = i + 1
ENDDO
RELEASE loHttp
RELEASE loSbResponse
RELEASE loJarr