platformcommunity / flysystem-bunnycdn
BunnyCDN 的 Flysystem 适配器
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.4
- league/flysystem: ^3.16
- league/mime-type-detection: ^1.11
Requires (Dev)
- fzaninotto/faker: ^1.5
- laravel/pint: ^0.2.3
- league/flysystem-adapter-test-utilities: ^3
- league/flysystem-memory: ^3.0
- league/flysystem-path-prefixing: ^3.3
- phpunit/phpunit: @stable
- v3.x-dev
- v3.3.4
- v3.3.3
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.4
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.1
- v3.0.0
- v3.0.0-alpha-1
- v2.x-dev
- v2.4.0
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.1
- v2.1.0
- v2.0.0
- v1.x-dev
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- dev-master / 1.0.x-dev
- v1.0.0
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.1
- v0.1
- dev-fix/phpunit-10
- dev-sifex-patch-1
- dev-feature/flytests-to-live
- dev-feature/regions-update
This package is auto-updated.
Last update: 2024-08-25 01:53:41 UTC
README
BunnyCDN 存储的 Flysystem 适配器
安装
要安装 flysystem-bunnycdn
,不需要指定版本约束。这应该与您的 FlySystem 版本(v2、v3 等)相匹配。
composer require platformcommunity/flysystem-bunnycdn "*"
使用方法
use League\Flysystem\Filesystem; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNAdapter; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNClient; use PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNRegion; $adapter = new BunnyCDNAdapter( new BunnyCDNClient( 'storage-zone', 'api-key', BunnyCDNRegion::FALKENSTEIN ) ); $filesystem = new Filesystem($adapter);
使用拉取区域
要将 BunnyCDN 适配器发布到公共 CDN 位置,您需要将一个“拉取区域”连接到您的 BunnyCDN 存储区域。将您的拉取区域的全局 URL 前缀(包括 http://
/https://
)添加到以下所示的 BunnyCDNAdapter 参数中。
$adapter = new BunnyCDNAdapter( new BunnyCDNClient( 'storage-zone', 'api-key', BunnyCDNRegion::FALKENSTEIN ), 'https://testing.b-cdn.net/' # Pull Zone URL ); $filesystem = new Filesystem($adapter);
注意:如果您的拉取区域已配置自己的域名,您也可以使用它。
一旦您添加了拉取区域,您就可以使用 ->getUrl($path)
或在 Laravel 中使用 ->url($path)
命令来获取您的 BunnyCDN 资产的完全合格公共 URL。
Laravel 9 中的使用
要将 BunnyCDN 适配器作为 Laravel 9 中的自定义存储适配器添加,请使用 v3
composer 安装程序安装。
composer require platformcommunity/flysystem-bunnycdn "^3.0"
接下来,将适配器安装到您的 AppServiceProvider
中,以便 Laravel 的 FileSystem 知道 BunnyCDN 适配器。
/** * Bootstrap any application services. * * @return void */ public function boot() { Storage::extend('bunnycdn', function ($app, $config) { $adapter = new BunnyCDNAdapter( new BunnyCDNClient( $config['storage_zone'], $config['api_key'], $config['region'] ), 'http://testing.b-cdn.net' # Optional ); return new FilesystemAdapter( new Filesystem($adapter, $config), $adapter, $config ); }); }
最后,将 bunnycdn
驱动器添加到您的 config/filesystems.php
配置文件中。
... 'bunnycdn' => [ 'driver' => 'bunnycdn', 'storage_zone' => env('BUNNYCDN_STORAGE_ZONE'), 'api_key' => env('BUNNYCDN_API_KEY'), 'region' => env('BUNNYCDN_REGION', \PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNRegion::DEFAULT) ], ...
最后,在您的 .env
文件中设置 BUNNYCDN_STORAGE_ZONE
、BUNNYCDN_API_KEY
和 BUNNYCDN_REGION
变量。
BUNNYCDN_STORAGE_ZONE=testing_storage_zone BUNNYCDN_API_KEY="api-key" # BUNNYCDN_REGION=uk
之后,您就可以在 Laravel 9 中使用 bunnycdn
磁盘了。
Storage::disk('bunnycdn')->put('index.html', '<html>Hello World</html>'); return response(Storage::disk('bunnycdn')->get('index.html'));
注意:如果您的应用程序运行在带有配置缓存驱动器/生产模式的情况下,您可能需要运行 php artisan config:clear
以刷新您的配置。
区域
有关完整区域列表,请访问 BunnyCDN API 文档页面。
flysystem-bunnycdn
还在 PlatformCommunity\Flysystem\BunnyCDN\BunnyCDNRegion
中提供了每个区域的常量。
区域列表
# Europe BunnyCDNRegion::FALKENSTEIN = 'de'; BunnyCDNRegion::STOCKHOLM = 'se'; # United Kingdom BunnyCDNRegion::UNITED_KINGDOM = 'uk'; # USA BunnyCDNRegion::NEW_YORK = 'ny'; BunnyCDNRegion::LOS_ANGELAS = 'la'; # SEA BunnyCDNRegion::SINGAPORE = 'sg'; # Oceania BunnyCDNRegion::SYDNEY = 'syd'; # Africa BunnyCDNRegion::JOHANNESBURG = 'jh'; # South America BunnyCDNRegion::BRAZIL = 'br';
贡献
欢迎拉取请求。请随时提出任何问题作为讨论点。
开发
对于 Flysystem 适配器如何为 BunnyCDN 的工作,大部分理解来自 tests/
。如果您想针对一个实际的 BunnyCDN 端点进行测试,请将 tests/ClientDI_Example.php
复制到 tests/ClientDI.php
,并将您的凭据插入其中。然后,您可以通过运行 vendor/bin/phpunit
运行整个套件,或通过运行 vendor/bin/phpunit --bootstrap tests/ClientDI.php tests/ClientTest.php
对特定文件进行测试。
许可证
BunnyCDN 的 Flysystem 适配器许可协议为 MIT。