goodgay / huaweiobs
对象存储服务(OBS)提供海量、安全、高可靠性和低成本的数据存储能力,允许用户存储任何类型和大小的数据。它适用于各种数据存储场景,如企业备份/归档、点播视频和视频监控。
0.9.6
2021-01-13 06:10 UTC
Requires
- php: ^7.3
- ext-json: *
- goodgay/obsv3: ^3.20.5
- league/flysystem: ^1.0.20
README
在您的 Laravel 或 Lumen 应用程序中轻松使用官方 PHP SDK 客户端的方法。
安装和配置
通过 composer 安装 goodgay/huaweiobs
包的当前版本
composer require goodgay/huaweiobs
Laravel
包的服务提供程序将自动注册其服务提供程序。
发布配置文件
php artisan vendor:publish --provider="Goodgay\HuaweiOBS\HWOBSServiceProvider"
通过 .env 文件进行替代配置方法
按照上述建议发布配置文件后,您可以通过将以下内容添加到应用程序的 .env
文件(使用适当的值)来配置 OBS
HWOBS_ACCESS_KEY_ID=5RXYW9YKK HWOBS_SECRET_ACCESS_KEY=NBHXP7UEBqNu HWOBS_DEFAULT_REGION=region HWOBS_BUCKET=test HWOBS_URL= HWOBS_ENDPOINT=https://obs.cn-south-1.myhuaweicloud.com
Lumen
如果您使用 Lumen,请在 bootstrap/app.php
中注册服务提供程序和配置
$app->register(Goodgay\HuaweiOBS\HWOBSServiceProvider::class); $app->configure('hwobs');
手动将配置文件复制到您的应用程序。
使用
HWobs
门面只是进入 php-obs sdk 的入口点,因此您之前可能使用过
use ObsV3\ObsClient; $obsClient = ObsClient::factory ( [ 'key' => $ak, 'secret' => $sk, 'endpoint' => $endpoint, 'socket_timeout' => 30, 'connect_timeout' => 10 ] ); $resp = $obsClient -> listObjects(['Bucket' => $bucketName]); foreach ( $resp ['Contents'] as $content ) { printf("\t%s etag[%s]\n", $content ['Key'], $content ['ETag']); } printf("\n");
现在您可以用以下简单的两行代码替换这些
use Goodgay\HuaweiOBS\HWobs; $return = HWobs::all(); //or $return = HWobs::obs()->listObjects(['Bucket' => $bucketName]);
希望使用 Facades 的 Lumen 用户可以通过编辑 bootstrap/app.php
文件来包含以下内容
$app->withFacades(true,[ Goodgay\HuaweiOBS\HWobs::class => 'Hwobs' ]);
// 文件系统的配置文件位于 config/filesystems.php 'hwobs' => [ 'driver' => 'hwobs', 'key' => env('HWOBS_ACCESS_KEY_ID',''), 'secret' => env('HWOBS_SECRET_ACCESS_KEY',''), 'region' => env('HWOBS_DEFAULT_REGION',''), 'bucket' => env('HWOBS_BUCKET',''), 'url' => env('HWOBS_URL',''), 'endpoint' => env('HWOBS_ENDPOINT',''), 'exceptionResponseMode' => false, ], Storage::disk('hwobs')->put('file.txt', 'Contents');
高级使用
由于该包是围绕官方 php-obs sdk 的包装器,您可以使用该包做很多事情。
上传
$resp = HWobs::putText("object-name","some content"); $resp = HWobs::putFile("object-name","./some.txt");
下载
$resp = HWobs::getText("object-name"); $resp = HWobs::getStream("object-name"); $resp = HWobs::getFile("object-name",'save_path.txt');
管理对象
$resp = HWobs::getMetadata("object-name"); $resp = HWobs::delete("object-name"); $resp = HWobs::all(); $resp = HWobs::deleteMulti(['object-name1','object-name2']);
错误、建议和支持
特别感谢 Visual Studio Code 的开源许可计划……和当然,优秀的 IDE!
请使用 Github 报告错误,并发表评论或建议。
版权和许可
laravel-huaweiobs 由 fuzuchang 编写,并按照 MIT 许可证 发布。
版权(c)2020 fuzuchang