Skip to content

The official PHP library used for interacting with the BunnyCDN Storage API.

License

Notifications You must be signed in to change notification settings

BunnyWay/BunnyCDN.PHP.Storage

Repository files navigation

Bunny Storage PHP library

The official PHP library used for interacting with the BunnyCDN Storage API.

Install

composer require bunnycdn/storage

Usage

Create an instance of the \Bunny\Storage\Client with the authentication details

$client = new \Bunny\Storage\Client('access-key', 'storage-zone', \Bunny\Storage\Region::SINGAPORE);

The BunnyCDNStorage constructor takes the following parameters:

  • apiAccessKey - The API access key (password)
  • storageZoneName - The name of your storage zone
  • storageZoneRegion - The storage zone region code (de, ny, or sg)

Navigation:


Uploading objects

$client->upload('/path/to/local/file.txt', 'remote/path/hello-world.txt');

The checksum can be disabled using the $withChecksum parameter:

$client->upload('/path/to/local/file.txt', 'remote/path/hello-world.txt', false);

Note

Async uploads are supported with $client->uploadAsync(). It will return a GuzzleHttp\Promise\PromiseInterface.


Downloading objects

$client->download('remote/path/hello-world.txt', '/path/to/local/file.txt');

Listing objects

$items = $client->listFiles('remote/path/');

Returns an array of FileInfo objects.


Get an object's details

$item = $client->info('remote/path/hello-world.txt');

Returns an instance of FileInfo.


Deleting objects

$client->delete('remote/path/hello-world.txt');

Delete multiple objects

$errors = $client->deleteMultiple(['file1.txt', 'file2.txt', 'non-existing.txt']);
var_dump($errors);

/*
array(1) {
  'non-existing.txt' =>
  string(16) "Object not found"
}
*/

Put file contents

$content = 'Hello, world!';
$client->putContents('hello-world.txt', $content);

The checksum can be disabled using the $withChecksum parameter:

$content = 'Hello, world!';
$client->putContents('hello-world.txt', $content, false);

Get file contents

$content = $client->getContents('hello-world.txt');
echo $content; // Hello, world!