Jump to content

Extension:AliyunMinioStorage/zh

From mediawiki.org
MediaWiki extensions manual
AliyunMinioStorage
Release status: beta
Implementation File repository
Description 允许 MediaWiki 使用阿里云 OSS、MinIO 或任何兼容 S3 协议的服务作为文件存储后端。
Author(s) Litanwei
Latest version 0.0.1
MediaWiki >= 1.45.0
  • $wgAliyunMinioStorageCredentials
  • $wgAliyunMinioStorageRegion
  • $wgAliyunMinioStorageEndpoint
  • $wgAliyunMinioStorageServiceType
Licence GNU General Public License 2.0 or later
Download GitHub

AliyunMinioStorage 扩展允许 MediaWiki 将上传的文件存储到阿里云 OSS (对象存储服务)、MinIO 或任何其他兼容 S3 的存储服务中,而不是本地文件系统。 本扩展基于 AWS SDK for PHP v3 构建,与 MediaWiki 原生的 FileBackend 框架无缝集成,提供高性能和多租户支持。

安装

[edit source]
  1. 下载扩展代码并将其放置在
    extensions/AliyunMinioStorage
    
    目录中。
  2. 将以下行添加到
    LocalSettings.php
    
    文件的末尾:
wfLoadExtension( 'AliyunMinioStorage' );

配置

[edit source]

要在 MediaWiki 中开始使用阿里云 OSS 或 MinIO 作为文件后端,请将以下配置添加到您的

LocalSettings.php

中,并根据实际情况修改变量值。

步骤 1: 基础凭证配置

[edit source]
// 连接凭证
$wgAliyunMinioStorageCredentials = [
    'key'    => '您的 AccessKey ID',
    'secret' => '您的 AccessKey Secret'
];
// 存储区域 (例如 OSS 为 oss-cn-hangzhou,MinIO 默认为 us-east-1)
$wgAliyunMinioStorageRegion = 'oss-cn-hangzhou';
// 服务终端地址 (Endpoint)
$wgAliyunMinioStorageEndpoint = 'https://oss-cn-hangzhou.aliyuncs.com';
// 服务类型: 'aliyun' 或 'minio'
$wgAliyunMinioStorageServiceType = 'aliyun';

步骤 2: 高级后端设置 (多租户/WikiFarm)

[edit source]

如果您运行的是 WikiFarm,并且需要在同一个存储桶中通过路径前缀隔离不同站点,请使用

$wgFileBackends

数组:

$wgFileBackends[] = [
    'name'           => 'farm-backend',
    'class'          => 'AliyunMinioStorage\AliyunMinioFileBackend',
    'endpoint'       => 'http://minio:9000',
    'region'         => 'us-east-1',
    'credentials'    => [
        'key'    => 'minioadmin',
        'secret' => 'minioadmin'
    ],
    // 映射: 逻辑容器 -> 物理路径
    'containerPaths' => [
        'wiki1-public' => 'shared-bucket/wiki1/images',
        'wiki1-thumb'  => 'shared-bucket/wiki1/thumb',
        'wiki2-public' => 'shared-bucket/wiki2/images',
    ],
    // 可选: 绑定静态资源域名 (CDN)
    'publicUrl'      => 'https://cdn.example.com',
];

权限要求

[edit source]

确保您的 RAM (访问控制) 用户或 MinIO 用户对该存储桶具有足够的权限。至少需要以下操作权限:

  • oss:PutObject
    
  • oss:GetObject
    
  • oss:DeleteObject
    
  • oss:ListObjects
    
    (或者是 S3/MinIO 的
    s3:ListBucket
    
    )

维护

[edit source]

您可以通过运行内置的维护脚本来验证您的配置:

php maintenance/verify_storage.php

参见

[edit source]

外部链接

[edit source]