hollisho/minio-php
Composer 安装命令:
composer require hollisho/minio-php
包简介
php minio library
README 文档
README
Install
Via Composer
$ composer require hollisho/minio-php
Usage
ObjectClient 示例
use hollisho\minio\ObjectClient; // 创建客户端 $client = new ObjectClient( 'https://oss.kongfupack.com', // endpoint 'your-access-key', // access key 'your-secret-key', // secret key 'your-bucket' // bucket name ); // 或使用单例模式 $client = ObjectClient::getInstance( 'https://oss.kongfupack.com', 'your-access-key', 'your-secret-key', 'your-bucket' ); // 上传文件 $result = $client->upLoadObject('/path/to/file.jpg', 'my-file.jpg'); // 上传内容 $result = $client->upLoadObjectContent('file content', 'path/to/file.txt'); // 获取文件 URL $url = $client->getUrl('my-file.jpg', '+1 day'); // 删除文件 $client->deleteObject('my-file.jpg'); // 批量上传 $files = ['/path/to/file1.jpg', '/path/to/file2.jpg']; $results = $client->batchUpload($files); // 批量删除 $objects = ['file1.jpg', 'file2.jpg']; $client->batchDeleteObject($objects);
StsClient 示例
use hollisho\minio\StsClient; use hollisho\minio\ObjectClient; // ========== 服务端:生成临时凭证 ========== // 创建 STS 客户端(使用主凭证) $stsClient = new StsClient( 'https://oss.kongfupack.com', 'your-access-key', 'your-secret-key', 'arn:aws:iam::123456789012:role/your-role' ); // 定义权限策略(只允许上传到 uploads/ 目录) $policy = json_encode([ 'Version' => '2012-10-17', 'Statement' => [ [ 'Effect' => 'Allow', 'Action' => ['s3:PutObject', 's3:GetObject'], 'Resource' => ['arn:aws:s3:::your-bucket/uploads/*'] ] ] ]); // 获取临时凭证(有效期 1 小时) $tempCredentials = $stsClient->assumeRole( 3600, // 有效期(秒) $policy, // 权限策略 'client-session-' . uniqid() // 会话名称 ); // 返回给客户端的临时凭证 $credentialsForClient = [ 'accessKeyId' => $tempCredentials->getAccessKeyId(), 'secretAccessKey' => $tempCredentials->getSecretKey(), 'sessionToken' => $tempCredentials->getSecurityToken(), 'expiresIn' => 3600 ]; // ========== 客户端:使用临时凭证 ========== // 客户端使用临时凭证创建 ObjectClient $client = new ObjectClient( 'https://oss.kongfupack.com', $credentialsForClient['accessKeyId'], $credentialsForClient['secretAccessKey'], 'your-bucket', $credentialsForClient['sessionToken'] // 临时凭证的 token ); // 客户端可以在权限范围内进行操作 $client->upLoadObject('/path/to/file.jpg', 'uploads/file.jpg');
Testing
查看详细测试说明:tests/README.md
快速开始
# 安装依赖 composer install # 运行单元测试 vendor/bin/phpunit --exclude-group integration # 运行集成测试(需要配置 MinIO 连接信息) vendor/bin/phpunit tests/IntegrationTest.php # 运行 STS 测试(需要 MinIO 配置 STS,否则会跳过) vendor/bin/phpunit tests/StsClientIntegrationTest.php
关于 STS 测试
STS (Security Token Service) 是可选功能,大多数应用不需要。如果你看到 STS 测试被跳过,这是正常的。
为什么 STS 测试失败?
- MinIO 的 STS 功能需要配置 OIDC(OpenID Connect)才能启用
- 配置 OIDC 需要额外的身份提供者服务器(Keycloak、Auth0 等)
- 配置复杂,大多数项目不需要
推荐的替代方案(立即可用):
- 后端代理上传(最推荐)- 见
examples/backend-proxy-upload.php - 预签名 URL(最简单)- 见
examples/presigned-url-upload.php
相关文档:
hollisho/minio-php 适用场景与选型建议
hollisho/minio-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 38 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「lumen」 「minio」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 hollisho/minio-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hollisho/minio-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 hollisho/minio-php 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Testing Suite For Lumen like Laravel does.
MinIO client component for Yii2 framework
Symfony bundle for automatic file upload handling on Doctrine ORM entities with S3, CDN, and multiple storage support
Stackdriver handler for Monolog (codeinternetapplications/monolog-stackdriver Fork).
Class to generate a standard structure for api json responses
OriginPHP Storage
统计信息
- 总下载量: 38
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-18