wangqs / laravel-filesystem-obs
真正可用的Laravel 5+ 华为OBS存储 For Filesystem
v3.0.1
2021-03-03 17:34 UTC
Requires
- php: ^7.2
- ext-json: *
- league/flysystem: ^1.0.20
- wangqs/obsv3: ^1.0.0
README
基于wangqs/laravel-filesystem-obs的Laravel华为云OBS存储。
安装和配置
通过composer安装goodgay/huaweiobs
包的最新版本
composer require wangqs/laravel-filesystem-obs
Laravel
该包的服务提供程序将自动注册其服务提供程序。
发布配置文件
php artisan vendor:publish --provider="Wangqs\HuaweiOBS\HWOBSServiceProvider"
通过.env文件进行替代配置方法
按照上述建议发布配置文件后,您可以通过在应用程序的.env
文件中添加以下内容来配置OBS(使用适当的值)
HWOBS_ACCESS_KEY_ID=xxxxxxxx HWOBS_SECRET_ACCESS_KEY=xxxxxxx HWOBS_DEFAULT_REGION=region HWOBS_BUCKET=test HWOBS_URL= HWOBS_ENDPOINT=https://obs.xxxxx.myhuaweicloud.com
Lumen
如果您使用Lumen,请在bootstrap/app.php
中注册服务提供程序和配置
$app->register(Wangqs\HuaweiOBS\HWOBSServiceProvider::class); $app->configure('hwobs');
手动将配置文件复制到您的应用程序中。
使用方法
HWobs
外观仅仅是进入php-obs sdk的入口点,所以之前您可能使用过
use Wangqs\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 Wangqs\HuaweiOBS\HWobs; $return = HWobs::all(); //or $return = HWobs::obs()->listObjects(['Bucket' => $bucketName]);
希望使用外观的Lumen用户可以通过编辑bootstrap/app.php
文件来包含以下内容
$app->withFacades(true,[ Wangqs\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']);