⚠️ (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 theBunnyCDNStorage
toBunnyCDNClient
and re-import.⚠️
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 "*"
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);
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.
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
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
.
BunnyCDNRegion::FALKENSTEIN = 'de';
BunnyCDNRegion::NEW_YORK = 'ny';
BunnyCDNRegion::LOS_ANGELAS = 'la';
BunnyCDNRegion::SINGAPORE = 'sg';
BunnyCDNRegion::SYDNEY = 'syd';
BuunyCDNRegion::UNITED_KINGDOM = 'uk';
Pull requests welcome. Please feel free to lodge any issues as discussion points.
The Flysystem adapter for Bunny.net is licensed under MIT.