weboptic / flysystem-bunnycdn
Flysystem adapter for BunnyCDN
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.4
- league/flysystem: ^3.0
Requires (Dev)
- fzaninotto/faker: ^1.5
- league/flysystem-adapter-test-utilities: ^3
- league/flysystem-memory: ^3.0
- mockery/mockery: ^1.3
- phpunit/phpunit: @stable
This package is auto-updated.
Last update: 2025-02-15 21:24:11 UTC
README
Flysystem Adapter for BunnyCDN Storage
⚠️ Note – Breaking Change
⚠️ (21/Feb/22) As the upstream BunnyCDNStorage client has gone sometime without an update, it's become unsustainable to continue to use. For all updates, simply change the
BunnyCDNStorage
toBunnyCDNClient
and re-import. ⚠️
Installation
To install flysystem-bunnycdn
, require the package with no version constraint. This should match the flysystem-bunnycdn
version with your version of FlySystem (v1, v2, v3 etc).
composer require platformcommunity/flysystem-bunnycdn "*"
Usage
use BunnyCDN\Storage\BunnyCDNClient; use League\Flysystem\Filesystem; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNAdapter; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNRegion; $adapter = new BunnyCDNAdapter( new BunnyCDNClient( 'storage-zone', 'api-key', BunnyCDNRegion::FALKENSTEIN ) ); $filesystem = new Filesystem($adapter);
Usage with Pull Zones
To have BunnyCDN adapter publish to a public CDN location, you have to a "Pull Zone" connected to your BunnyCDN Storage Zone. Add the full URL prefix of your Pull Zone (including http://
/https://
) to the BunnyCDNAdapter parameter like shown below.
use BunnyCDN\Storage\BunnyCDNClient; use League\Flysystem\Filesystem; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNAdapter; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNRegion; $adapter = new BunnyCDNAdapter( new BunnyCDNClient( 'storage-zone', 'api-key', BunnyCDNRegion::FALKENSTEIN ), 'https://testing.b-cdn.net/' # Pull Zone URL ); $filesystem = new Filesystem($adapter);
Note: You can also use your own domain name if it's configured in the pull zone.
Once you add your pull zone, you can use the ->getUrl($path)
, or in Laravel, the ->url($path)
command to get the fully qualified public URL of your BunnyCDN assets.
Usage in Laravel 9
For a guide on how to use flysystem-bunnycdn
in Laravel 9, follow the guide here:
https://blog.sinn.io/bunny-net-php-flysystem-v3/#usage-in-laravel-9
Regions
For a full region list, please visit the BunnyCDN API documentation page.
flysystem-bunnycdn
also comes with constants for each region located within PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNRegion
.
List of Regions
BunnyCDNRegion::FALKENSTEIN = 'de'; BunnyCDNRegion::NEW_YORK = 'ny'; BunnyCDNRegion::LOS_ANGELAS = 'la'; BunnyCDNRegion::SINGAPORE = 'sg'; BunnyCDNRegion::SYDNEY = 'syd'; BuunyCDNRegion::UNITED_KINGDOM = 'uk';
Contributing
Pull requests welcome. Please feel free to lodge any issues as discussion points.
Licence
The Flysystem adapter for Bunny.net is licensed under MIT.