Extension:AliyunMinioStorage/zh
Appearance
Release status: beta |
|
|---|---|
| Implementation | File repository |
| Description | 允许 MediaWiki 使用阿里云 OSS、MinIO 或任何兼容 S3 协议的服务作为文件存储后端。 |
| Author(s) | Litanwei |
| Latest version | 0.0.1 |
| MediaWiki | >= 1.45.0 |
|
|
| 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]- 下载扩展代码并将其放置在 目录中。
extensions/AliyunMinioStorage
- 将以下行添加到 文件的末尾:
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
- (或者是 S3/MinIO 的
oss:ListObjects
)s3:ListBucket
维护
[edit source]您可以通过运行内置的维护脚本来验证您的配置:
php maintenance/verify_storage.php
