PHPackages                             luoyy/huawei-obs-storage - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. luoyy/huawei-obs-storage

ActiveLibrary[File &amp; Storage](/categories/file-storage)

luoyy/huawei-obs-storage
========================

huawei obs filesystem storage for laravel 9+

v2.0.2(11mo ago)012.5k↑226.7%MITPHPPHP ^8.1|^8.2

Since Jun 13Pushed 11mo ago1 watchersCompare

[ Source](https://github.com/zishang520/huawei-obs-storage)[ Packagist](https://packagist.org/packages/luoyy/huawei-obs-storage)[ Docs](https://github.com/zishang520/huawei-obs-storage)[ RSS](/packages/luoyy-huawei-obs-storage/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (1)Dependencies (4)Versions (8)Used By (0)

Huawei-obs-storage for Laravel 9+
=================================

[](#huawei-obs-storage-for-laravel-9)

Require
-------

[](#require)

- Laravel 9+
- cURL extension

Installation
------------

[](#installation)

In order to install HuaweiOBS-storage, just add

```
"luoyy/huawei-obs-storage": "^1.0"

```

to your composer.json. Then run `composer install` or `composer update`.
Or you can simply run below command to install:

```
"composer require luoyy/huawei-obs-storage:^1.0"

```

Then in your `config/app.php` add this line to providers array:

```
luoyy\HuaweiOBS\HuaweiObsServiceProvider::class,
```

Configuration
-------------

[](#configuration)

Add the following in `app/filesystems.php`:

```
'disks'=>[
    ...
    'obs' => [
            'driver' => 'obs',
            'access_id' => env('OBS_ACCESS_KEY_ID'),
            'access_key' => env('OBS_ACCESS_KEY_SECRET'),
            'security_token' => env('OBS_ACCESS_SESSION_KEY'), // required for temporary access credentials
            'bucket' => env('OBS_BUCKET'),
            'endpoint' => env('OBS_ENDPOINT'), // OBS 外网节点或自定义外部域名
            'endpoint_internal' => env('OBS_ENDPOINT_INTERNAL'), // 如果为空，则默认使用 endpoint 配置
            'cdnDomain' => env('OBS_DOMAIN'), // 如果不为空，getUrl会判断cdnDomain是否设定来决定返回的url，如果cdnDomain未设置，则使用endpoint来生成url，否则使用cdn
            'ssl' => env('OBS_SSL', false), // true to use 'https://' and false to use 'http://'. default is false,
            'prefix' => env('OBS_PREFIX'), // 路径前缀
            'options' => [],
            'throw' => true,
    ],
    ...
]
```

Then set the default driver in app/filesystems.php:

```
'default' => 'obs',
```

Ok, well! You are finish to configure. Just feel free to use Huawei OBS like Storage!

Usage
-----

[](#usage)

See [Larave doc for Storage](https://laravel.com/docs/9.x/filesystem#custom-filesystems)Or you can learn here:

> First you must use Storage facade

```
use Illuminate\Support\Facades\Storage;
```

> Then You can use all APIs of laravel Storage

```
Storage::disk('obs'); // if default filesystems driver is obs, you can skip this step

//fetch all files of specified bucket(see upond configuration)
Storage::files($directory);
Storage::allFiles($directory);

Storage::put('path/to/file/file.jpg', $contents); //first parameter is the target file path, second paramter is file content
Storage::putFile('path/to/file/file.jpg', 'local/path/to/local_file.jpg'); // upload file from local path

Storage::get('path/to/file/file.jpg'); // get the file object by path
Storage::exists('path/to/file/file.jpg'); // determine if a given file exists on the storage(OBS)
Storage::size('path/to/file/file.jpg'); // get the file size (Byte)
Storage::lastModified('path/to/file/file.jpg'); // get date of last modification

Storage::directories($directory); // Get all of the directories within a given directory
Storage::allDirectories($directory); // Get all (recursive) of the directories within a given directory

Storage::copy('old/file1.jpg', 'new/file1.jpg');
Storage::move('old/file1.jpg', 'new/file1.jpg');
Storage::rename('path/to/file1.jpg', 'path/to/file2.jpg');

Storage::prepend('file.log', 'Prepended Text'); // Prepend to a file.
Storage::append('file.log', 'Appended Text'); // Append to a file.

Storage::delete('file.jpg');
Storage::delete(['file1.jpg', 'file2.jpg']);

Storage::makeDirectory($directory); // Create a directory.
Storage::deleteDirectory($directory); // Recursively delete a directory.It will delete all files within a given directory, SO Use with caution please.
Storage::url('path/to/img.jpg') // get the file url
Storage::temporaryUrl('path/to/img.jpg', 900) // Get a temporary URL for the file at the given path.
```

Documentation
-------------

[](#documentation)

More development detail see [Huawei OBS DOC](https://support.huaweicloud.com/api-obs/obs_04_0079.html)

License
-------

[](#license)

Except for the Obs directory the source code is released under the MIT license. Read the license file for more information. Obs is Apache License 2.0.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance52

Moderate activity, may be stable

Popularity26

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 73.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~149 days

Recently: every ~167 days

Total

6

Last Release

359d ago

Major Versions

v1.0.4 → v2.0.02025-05-21

PHP version history (2 changes)v1.0.0PHP ^8.0.2|^8.1

v2.0.0PHP ^8.1|^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/b266931525b76005d393e4a9cd7f213899fc648af18c1c8e48d5768e5ee68513?d=identicon)[luoyy](/maintainers/luoyy)

---

Top Contributors

[![zishang520](https://avatars.githubusercontent.com/u/10894778?v=4)](https://github.com/zishang520 "zishang520 (11 commits)")[![mubbi](https://avatars.githubusercontent.com/u/6255767?v=4)](https://github.com/mubbi "mubbi (3 commits)")[![nextgeni-mubbi](https://avatars.githubusercontent.com/u/135956778?v=4)](https://github.com/nextgeni-mubbi "nextgeni-mubbi (1 commits)")

---

Tags

huwei-obslaravelstoragefilesystemshuaweiOBS

### Embed Badge

![Health badge](/badges/luoyy-huawei-obs-storage/health.svg)

```
[![Health](https://phpackages.com/badges/luoyy-huawei-obs-storage/health.svg)](https://phpackages.com/packages/luoyy-huawei-obs-storage)
```

###  Alternatives

[unisharp/laravel-filemanager

A file upload/editor intended for use with Laravel 5 to 10 and CKEditor / TinyMCE

2.1k3.4M81](/packages/unisharp-laravel-filemanager)[laravel/ai

The official AI SDK for Laravel.

9782.1M162](/packages/laravel-ai)[moonshine/moonshine

Laravel administration panel

1.3k239.9k76](/packages/moonshine-moonshine)[luoyy/ali-oss-storage

aliyun oss filesystem storage for laravel 10+

1430.7k1](/packages/luoyy-ali-oss-storage)[flarum/core

Delightfully simple forum software.

201.4M2.2k](/packages/flarum-core)[erag/laravel-lang-sync-inertia

A powerful Laravel package for syncing and managing language translations across backend and Inertia.js (Vue/React) frontends, offering effortless localization, auto-sync features, and smooth multi-language support for modern Laravel applications.

4821.5k](/packages/erag-laravel-lang-sync-inertia)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
