softavis / flysystem-cloudflare
Cloudflare 图片存储 Flysystem 适配器
0.3.1
2024-05-14 08:39 UTC
Requires
- php: >=7.2.5
- ext-fileinfo: *
- ext-json: *
- league/flysystem: ^2.1||^3.0
- symfony/http-client: ^5.4||^6.0||^7.0
- symfony/mime: ^5.4||^6.0||^7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.56
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.6
README
Cloudflare 图片存储系统,用于 Flysystem。
此库实现了 Cloudflare 图片 API 以与 flysystem 抽象层协同工作。
Cloudflare 图片存储仅支持图片文件,这是显而易见的。
安装
composer require softavis/flysystem-cloudflare
使用方法
<?php declare(strict_types=1); use League\Flysystem\Config; use Softavis\Flysystem\Cloudflare\Client; use Softavis\Flysystem\Cloudflare\CloudflareAdapter; use Symfony\Component\HttpClient\HttpClient; require './vendor/autoload.php'; const CLOUDFLARE_API_KEY = 'your-cloudflare-access-token'; const CLOUDFLARE_ACCOUNT_ID = 'your-cloudflare-account-id'; const CLOUDFLARE_ACCOUNT_HASH = 'your-cloudflare-account-hash'; const CLOUDFLARE_VARIANT_NAME = 'your-cloudflare-images-variant'; const CLOUDFLARE_URL = 'https://api.cloudflare.com/client/v4/accounts/%s/images/'; $client = new Client(HttpClient::createForBaseUri(sprintf(CLOUDFLARE_URL, CLOUDFLARE_ACCOUNT_ID), [ 'auth_bearer' => CLOUDFLARE_API_KEY, ])); $adapter = new CloudflareAdapter($client); $flysystem = new League\Flysystem\Filesystem($adapter, [ 'accountHash' => CLOUDFLARE_ACCOUNT_HASH, 'variantName' => CLOUDFLARE_VARIANT_NAME ]); // see http://flysystem.thephpleague.com/api/ for full list of available functionality
在 Symfony 中使用
添加环境变量
CLOUDFLARE_API_KEY= CLOUDFLARE_ACCOUNT_ID= CLOUDFLARE_ACCOUNT_HASH= CLOUDFLARE_VARIANT_NAME=
首先,添加 Cloudflare 作用域客户端(编辑 config/packages/framework.yaml)并添加
scoped_clients:
cloudflare.client:
base_uri: 'https://api.cloudflare.com/client/v4/accounts/%env(CLOUDFLARE_ACCOUNT_ID)%/images/'
auth_bearer: '%env(CLOUDFLARE_API_KEY)%'
接下来,添加 Cloudflare Flysystem 服务(编辑 config/services.yaml)
cloudflare_adapter:
class: 'Softavis\Flysystem\Cloudflare\CloudflareAdapter'
arguments:
- '@cloudflare_client'
- '%env(CLOUDFLARE_ACCOUNT_HASH)%'
- '%env(CLOUDFLARE_VARIANT_NAME)%'
cloudflare_client:
class: 'Softavis\Flysystem\Cloudflare\Client'
arguments:
- '@cloudflare.client' # This argument is our scoped client
- '%env(CLOUDFLARE_ACCOUNT_HASH)%'
- '%env(CLOUDFLARE_VARIANT_NAME)%'
最后,将 cloudflare_adapter 添加到 Flysystem 配置(编辑 config/packages/flysystem.yaml)
flysystem:
storages:
default.storage:
adapter: 'cloudflare_adapter'
更新日志
有关最近更改的详细信息,请参阅 更新日志。
贡献
我们欢迎贡献,并将完全认可。我们通过 Github 上的拉取请求接受贡献。
拉取请求
- PSR-2 编码规范 - 应用这些约定最简单的方法是安装 PHP Code Sniffer。
- 记录任何行为变更 - 确保代码库和任何其他相关文档都保持最新。
- 创建功能分支 - 请不要让我们从您的 master 分支中提取。
- 每个特性一个拉取请求 - 如果您想做更多的事情,请发送多个拉取请求。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。