wangqs/laravel-filesystem-obs

真正可用的Laravel 5+ 华为OBS存储 For Filesystem

v3.0.1 2021-03-03 17:34 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:23 UTC


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']);