goodgay/huaweiobs

对象存储服务(OBS)提供海量、安全、高可靠性和低成本的数据存储能力,允许用户存储任何类型和大小的数据。它适用于各种数据存储场景,如企业备份/归档、点播视频和视频监控。

0.9.6 2021-01-13 06:10 UTC

This package is auto-updated.

Last update: 2024-09-13 14:21:38 UTC


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-huaweiobsfuzuchang 编写,并按照 MIT 许可证 发布。

版权(c)2020 fuzuchang