softavis/flysystem-cloudflare

Cloudflare 图片存储 Flysystem 适配器

0.3.1 2024-05-14 08:39 UTC

This package is auto-updated.

Last update: 2024-09-12 13:48:34 UTC


README

Cloudflare 图片存储系统,用于 Flysystem

codecov Packagist Downloads GitHub License GitHub commit activity

此库实现了 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)。有关更多信息,请参阅 许可证文件