moderntribe/tribe-storage

此软件包最新版本(v3.0.1)没有可用的许可证信息。

WordPress 插件,用于将文件上传到多种不同的存储类型,如 Azure、s3、DO 空间

安装次数: 1,057

依赖项: 2

建议者: 0

安全: 0

星星: 5

关注者: 14

分支: 0

开放问题: 0

类型:wordpress-plugin


README

PHPCS + Unit Tests php 7.4+

此 WordPress 插件作为 Flysystem 适配器(v1)在 WordPress 中使用的桥梁。此插件旨在由 开发者 安装和配置,因为它没有图形用户界面。

当前支持的适配器

建议

强烈建议在多站点安装中将您的 WP_CONTENT_URL 设置为基础站点。

wp-config.php

function tribe_isSSL(): bool {
	return ( ! empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] !== 'off' );
}

$host = $_SERVER['HTTP_HOST'] ?? 'localhost';

define( 'WP_CONTENT_URL', ( tribe_isSSL() ? 'https' : 'http' ) . '://' . $host . '/wp-content' );

安装

要求

使用 Composer v1 安装

将以下内容添加到 composer.json 中的 repositories 对象

  "repositories": [
      {
        "type": "vcs",
        "url": "git@github.com:moderntribe/flysystem-stream-wrapper.git"
      },        
      {
        "type": "vcs",
        "url": "git@github.com:moderntribe/tribe-storage.git"
      },
  ]

然后运行

composer require moderntribe/tribe-storage

适配器

适配器允许不同的接口用于不同的存储服务提供商。为了告诉系统使用哪个适配器,请将一个 TRIBE_STORAGE_ADAPTER define() 添加到 wp-config.php 中,并使用适配器的命名空间路径(与 Class_Name::class 的输出相同),例如,要使用 Azure 存储适配器

define( 'TRIBE_STORAGE_ADAPTER', 'Tribe\Storage\Adapters\Azure_Adapter' );

本地适配器

这是默认适配器,指向 WP_CONTENT_DIR . /uploads。如果您没有配置任何自定义适配器,它将自动使用,并且应该与 WordPress 默认行为完全相同。

注意:配置错误的适配器将始终使用本地适配器,并在 WordPress 控制台显示通知。

Azure 存储适配器

要配置此适配器,请将以下定义添加并自定义到您的 wp-config.php

// Account name as you created it in the Azure dashboard.
define( 'MICROSOFT_AZURE_ACCOUNT_NAME', 'account' );

// Account secret key to authenticate.
define( 'MICROSOFT_AZURE_ACCOUNT_KEY', 'key' );

// The container name.
define( 'MICROSOFT_AZURE_CONTAINER', 'my_container' );

// The custom adapter namespaced path to the adapter.
define( 'TRIBE_STORAGE_ADAPTER', 'Tribe\Storage\Adapters\Azure_Adapter' );

// The URL/CNAME to use for the adapter.
define( 'TRIBE_STORAGE_URL', 'https://example.com/wp-content/uploads/' . MICROSOFT_AZURE_CONTAINER );

图像编辑器自定义

如果 Imagick 或 GD 遇到问题(如无日志的 500 错误),则强制使用自定义图像编辑器策略。

// For GD
define( 'TRIBE_STORAGE_IMAGE_EDITOR', 'gd' );

// For Imagick
define( 'TRIBE_STORAGE_IMAGE_EDITOR', 'imagick' );

缓存

数据库缓存(默认)

缓存通过 WordPress transients 保存,即使外部对象缓存可用,也会自动强制使用数据库。不幸的是,Flysystem 缓存适配器将整个输出保存到一个单个键中。

如果您使用 Redis 或 Memcached(限制大于 1mb),您可以使用以下方式禁用此功能:

// Store transients in the object cache instead of the database.
add_filter( 'tribe/storage/config/cache/force_db', '__return_false' );
禁用缓存

如果您遇到缓存问题,您可以通过向 wp-config.php 添加以下内容来禁用它:

define( 'TRIBE_STORAGE_NO_CACHE', true );

自动测试

通过 PHPUnitBrain Monkey 测试套件提供测试。

运行单元测试

$ composer install
$ ./vendor/bin/phpunit

添加 Flysystem 适配器

创建一个 Flysystem 桥接器。请参阅 /src/Adapters/Adapter.php

Adapter::get(): AdapterInterface;

get() 方法应返回一个配置好的 Flysystem 适配器。

更多资源