bunnycdn / storage
PHP library to interact with the BunnyCDN Storage API.
Installs: 16 284
Dependents: 2
Suggesters: 1
Security: 0
Stars: 69
Watchers: 10
Forks: 27
Open Issues: 1
Requires
- php: ^7.4||^8.0
- guzzlehttp/guzzle: ^7.8
- psr/http-message: ^2.0
- symfony/polyfill-php80: ^1.29
README
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!