Xbase++
Xbase++
Bunny Edge Storage - List Files
See more Bunny CDN Examples
Retrieve a list of files and directories located in the given directory.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oSbResponse
LOCAL nStatusCode
LOCAL oJarr
LOCAL oJson
LOCAL cGuid
LOCAL cStorageZoneName
LOCAL cPath
LOCAL cObjectName
LOCAL nLength
LOCAL cLastChanged
LOCAL nServerId
LOCAL nArrayNumber
LOCAL nIsDirectory
LOCAL cUserId
LOCAL cContentType
LOCAL cDateCreated
LOCAL nStorageZoneId
LOCAL cChecksum
LOCAL cReplicatedZones
LOCAL i
LOCAL nCount_i
nSuccess := 0
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
// Use the "Password" from the "FTP & HTTP API Access" console web page for your Bunny storage zone.
oHttp: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??)
oSbResponse := CreateObject("Chilkat.StringBuilder")
// Change the "storageZoneName" to your actual storage zone name.
nSuccess := oHttp:QuickGetSb("https://uk.storage.bunnycdn.com/storageZoneName/testDir/", oSbResponse)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oSbResponse:destroy()
RETURN
ENDIF
nStatusCode := oHttp:LastStatus
? "Status code = " + Str(nStatusCode)
IF (nStatusCode != 200)
? oSbResponse:GetAsString()
? "Failed."
oHttp:destroy()
oSbResponse:destroy()
RETURN
ENDIF
oJarr := CreateObject("Chilkat.JsonArray")
oJarr:LoadSb(oSbResponse)
oJarr:EmitCompact := 0
? oJarr: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
nCount_i := oJarr:Size
DO WHILE i < nCount_i
oJson := oJarr:ObjectAt(i)
cGuid := oJson:StringOf("Guid")
cStorageZoneName := oJson:StringOf("StorageZoneName")
cPath := oJson:StringOf("Path")
cObjectName := oJson:StringOf("ObjectName")
nLength := oJson:IntOf("Length")
cLastChanged := oJson:StringOf("LastChanged")
nServerId := oJson:IntOf("ServerId")
nArrayNumber := oJson:IntOf("ArrayNumber")
nIsDirectory := oJson:BoolOf("IsDirectory")
cUserId := oJson:StringOf("UserId")
cContentType := oJson:StringOf("ContentType")
cDateCreated := oJson:StringOf("DateCreated")
nStorageZoneId := oJson:IntOf("StorageZoneId")
cChecksum := oJson:StringOf("Checksum")
cReplicatedZones := oJson:StringOf("ReplicatedZones")
oJson:destroy()
i := i + 1
ENDDO
oHttp:destroy()
oSbResponse:destroy()
oJarr:destroy()