The official PHP library used for interacting with the BunnyCDN Storage API.
composer require bunnycdn/storage
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)
$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
.
$client->download('remote/path/hello-world.txt', '/path/to/local/file.txt');
$items = $client->listFiles('remote/path/');
Returns an array of FileInfo objects.
$item = $client->info('remote/path/hello-world.txt');
Returns an instance of FileInfo.
$client->delete('remote/path/hello-world.txt');
$errors = $client->deleteMultiple(['file1.txt', 'file2.txt', 'non-existing.txt']);
var_dump($errors);
/*
array(1) {
'non-existing.txt' =>
string(16) "Object not found"
}
*/
$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);
$content = $client->getContents('hello-world.txt');
echo $content; // Hello, world!