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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a770984 · Jul 29, 2024

History

38 Commits
Mar 20, 2024
Jul 26, 2024
Jul 26, 2024
Feb 26, 2024
Dec 14, 2023
Jul 29, 2024
Dec 9, 2019
Jul 26, 2024
Mar 20, 2024
Jan 15, 2024
Feb 26, 2024

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!