Sample code for 30+ languages & platforms
Dart

Bunny Edge Storage - List Files

See more Bunny CDN Examples

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

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

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

  final http = CkHttp();

  // 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??)

  final sbResponse = CkStringBuilder();

  // Change the "storageZoneName" to your actual storage zone name.
  try {
    http.quickGetSb('https://uk.storage.bunnycdn.com/storageZoneName/testDir/', sbResponse);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final statusCode = http.lastStatus;
  print('Status code = $statusCode');

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

  final jarr = CkJsonArray();
  jarr.loadSb(sbResponse);
  jarr.emitCompact = false;

  print(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

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

  var i = 0;
  final countI = jarr.size;
  while (i < countI) {
    final 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++;
  }
}