Sample code for 30+ languages & platforms
React Native

Bunny Edge Storage - List Files

See more Bunny CDN Examples

Retrieve a list of files and directories located in the given directory.

Chilkat React Native Downloads

React Native
import { Http, JsonArray, StringBuilder } from '@chilkat/react-native'

async function chilkatExample() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const http = new Http();

  // Use the "Password" from the "FTP & HTTP API Access" console web page for your Bunny storage zone.
  http.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??)

  const sbResponse = new StringBuilder();

  // Change the "storageZoneName" to your actual storage zone name.
  try {
    await http.quickGetSbAsync('https://uk.storage.bunnycdn.com/storageZoneName/testDir/', sbResponse);
  } catch {
    console.log(http.lastErrorText);
    return;
  }

  const statusCode = http.lastStatus;
  console.log(`Status code = ${statusCode}`);

  if (statusCode !== 200) {
    console.log(sbResponse.getAsString());
    console.log('Failed.');
    return;
  }

  const jarr = new JsonArray();
  jarr.loadSb(sbResponse);
  jarr.emitCompact = false;

  console.log(jarr.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

  let guid = '';
  let storageZoneName = '';
  let path = '';
  let objectName = '';
  let length = 0;
  let lastChanged = '';
  let serverId = 0;
  let arrayNumber = 0;
  let userId = '';
  let contentType = '';
  let dateCreated = '';
  let storageZoneId = 0;
  let checksum = '';
  let replicatedZones = '';

  let i = 0;
  const countI = jarr.size;
  while (i < countI) {
    const json = jarr.objectAt(i);
    guid = json.stringOf('Guid');
    storageZoneName = json.stringOf('StorageZoneName');
    path = json.stringOf('Path');
    objectName = json.stringOf('ObjectName');
    length = json.intOf('Length');
    lastChanged = json.stringOf('LastChanged');
    serverId = json.intOf('ServerId');
    arrayNumber = json.intOf('ArrayNumber');
    json.boolOf('IsDirectory');
    userId = json.stringOf('UserId');
    contentType = json.stringOf('ContentType');
    dateCreated = json.stringOf('DateCreated');
    storageZoneId = json.intOf('StorageZoneId');
    checksum = json.stringOf('Checksum');
    replicatedZones = json.stringOf('ReplicatedZones');

    i++;
  }
}