PHPackages                             shineability/laravel-azure-blob-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. shineability/laravel-azure-blob-storage

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

shineability/laravel-azure-blob-storage
=======================================

Azure Blob Storage filesystem driver for Laravel

1.1.0(2mo ago)011MITPHPPHP ^8.2CI passing

Since Apr 18Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/shineability/laravel-azure-blob-storage)[ Packagist](https://packagist.org/packages/shineability/laravel-azure-blob-storage)[ RSS](/packages/shineability-laravel-azure-blob-storage/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (13)Versions (6)Used By (0)

Azure Blob Storage filesystem driver for Laravel
================================================

[](#azure-blob-storage-filesystem-driver-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/256119570a53d1cd73a91a94775cb3f5d3332109569247584964a9bad610e8ba/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7368696e656162696c6974792f6c61726176656c2d617a7572652d626c6f622d73746f726167652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/shineability/laravel-azure-blob-storage) [![Total Downloads](https://camo.githubusercontent.com/461b1295bc26f5d4e5ee482903efc7d5dfa49e61f4efd6a25da7c4ec5462d945/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7368696e656162696c6974792f6c61726176656c2d617a7572652d626c6f622d73746f726167652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/shineability/laravel-azure-blob-storage) [![Unit tests](https://camo.githubusercontent.com/1e53d4b00416ba523048005cd68fcaf2ef23d9c0a91620ebbb8875622c1e21ce/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7368696e656162696c6974792f6c61726176656c2d617a7572652d626c6f622d73746f726167652f756e69742d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d756e69742532307465737473267374796c653d666c61742d737175617265)](https://github.com/shineability/laravel-azure-blob-storage/actions/workflows/unit-tests.yml) [![Feature tests](https://camo.githubusercontent.com/443a0a02864632e7bb083558dc69fceb49c0434e597f7cce3fbb569ac1b0aa8c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7368696e656162696c6974792f6c61726176656c2d617a7572652d626c6f622d73746f726167652f666561747572652d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d666561747572652532307465737473267374796c653d666c61742d737175617265)](https://github.com/shineability/laravel-azure-blob-storage/actions/workflows/feature-tests.yml) [![PHPStan](https://camo.githubusercontent.com/5caa90552de2671750521d0ac7bc7cf89ed4fa86b9c38d0a5130b39689723092/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7368696e656162696c6974792f6c61726176656c2d617a7572652d626c6f622d73746f726167652f7068707374616e2e796d6c3f6272616e63683d6d61696e266c6162656c3d7068707374616e267374796c653d666c61742d737175617265)](https://github.com/shineability/laravel-azure-blob-storage/actions/workflows/phpstan.yml) [![License](https://camo.githubusercontent.com/79cbf914f6d2a6e1787546cf49897f1ffeb33dff5804dc14ed93cb66ef0e81c7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f7368696e656162696c6974792f6c61726176656c2d617a7572652d626c6f622d73746f726167652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/shineability/laravel-azure-blob-storage)

This package provides a configurable **Azure Blob Storage** filesystem driver for Laravel allowing the creation of container filesystems at runtime.

Minimum requirements
--------------------

[](#minimum-requirements)

- **PHP 8.2** or higher
- **Laravel 11.x** or higher

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

[](#installation)

```
composer require shineability/laravel-azure-blob-storage
```

The service provider and `AzureBlobStorage` facade are auto-discovered by Laravel.

Usage
-----

[](#usage)

### Named connections

[](#named-connections)

Define reusable connections in `config/filesystems.php`:

```
'azure_blob_storage' => [
    'connections' => [
        'default' => [
            'account_name' => env('AZURE_BLOB_STORAGE_ACCOUNT_NAME'),
            'account_key' => env('AZURE_BLOB_STORAGE_ACCOUNT_KEY'),
        ],
        'backup' => [
            'account_name' => env('AZURE_BACKUP_ACCOUNT_NAME'),
            'account_key' => env('AZURE_BACKUP_ACCOUNT_KEY'),
        ],
        // Or use a connection string directly
        'external' => env('AZURE_EXTERNAL_CONNECTION_STRING'),
    ],
],
```

### Disk configuration

[](#disk-configuration)

Configure a disk in `config/filesystems.php`:

```
'disks' => [
    // Uses inline connection config
    'azure-images' => [
        'driver' => 'azure_blob_storage',
        'container' => 'images',
        'prefix' => 'backup',
        'connection' => [
            'account_name' => env('AZURE_BLOB_STORAGE_ACCOUNT_NAME'),
            'account_key' => env('AZURE_BLOB_STORAGE_ACCOUNT_KEY'),
        ],
    ],

    // Uses a connection string directly
    'azure-backups' => [
        'driver' => 'azure_blob_storage',
        'container' => 'backups',
        'connection' => env('AZURE_BLOB_STORAGE_CONNECTION_STRING'),
    ],

    // Uses a named connection
    'azure-documents' => [
        'driver' => 'azure_blob_storage',
        'container' => 'documents',
        'connection' => 'backup',  // References named connection
    ],

    // Uses 'default' named connection when omitted
    'azure-uploads' => [
        'driver' => 'azure_blob_storage',
        'container' => 'uploads',
    ],
],
```

Access the disk using the `Storage` facade:

```
Storage::disk('azure-images')->put('logo.png', $contents);
```

### Connection options

[](#connection-options)

PropertyRequiredDefaultDescription`account_name`Yes-Storage account name`account_key`Yes\*-Storage account access key`shared_access_signature`Yes\*-SAS token (alternative to `account_key`)`default_endpoints_protocol`No`https`Protocol to use`endpoint_suffix`No`core.windows.net`Regional endpoint suffix`blob_endpoint`No-Custom domain endpoint\* Either `account_key` or `shared_access_signature` is **required**.

For more information on connection strings, see the [**Azure Storage docs**](https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string).

### Temporary upload URLs

[](#temporary-upload-urls)

Generate temporary upload URLs to allow direct uploads to Azure Blob Storage without exposing credentials:

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

['url' => $url, 'headers' => $headers] = Storage::disk('azure-images')->temporaryUploadUrl(
    'logo.png', now()->addMinutes(5)
);
```

For more information, see the [**Azure Storage docs**](https://learn.microsoft.com/en-us/rest/api/storageservices/put-blob).

### Runtime container access

[](#runtime-container-access)

Use the `AzureBlobStorage` facade to create container filesystems at runtime without configuring separate disks:

```
use Shineability\LaravelAzureBlobStorage\Facades\AzureBlobStorage;

// Use the 'default' named connection
$filesystem = AzureBlobStorage::container('images');

// Or explicitly connect to a named connection
$filesystem = AzureBlobStorage::connect('backup')->container('images');

$filesystem->put('photo.jpg', $contents);

echo $filesystem->url('photo.jpg');
```

You can also connect using an inline **config array**:

```
$filesystem = AzureBlobStorage::connect([
    'account_name' => env('AZURE_BLOB_STORAGE_ACCOUNT_NAME'),
    'account_key' => env('AZURE_BLOB_STORAGE_ACCOUNT_KEY'),
])->container('images');
```

Or using a **connection string**:

```
$filesystem = AzureBlobStorage::connect(env('AZURE_BLOB_STORAGE_CONNECTION_STRING'))
    ->container('images');
```

Testing
-------

[](#testing)

Run unit tests:

```
composer test:unit
```

Run feature tests (requires [Azurite](https://github.com/Azure/Azurite) on port 10000):

```
composer test:feature
```

Run static analysis:

```
composer test:types
```

Run linting:

```
composer lint
```

Run all quality checks (unit tests, feature tests, static analysis, linting):

```
composer test
```

### Run tests with Docker

[](#run-tests-with-docker)

For consistent testing with code coverage, use Docker via the Makefile:

```
# Build the Docker image (runs automatically when needed)
make build

# Run all quality checks
make test

# Run unit tests only
make test-unit

# Run feature tests only
make test-feature

# Run tests with coverage report
make test-coverage

# Run static analysis
make test-types

# Run linting
make lint

# Clean up (remove containers and build artifacts)
make clean
```

### Run GitHub workflow locally

[](#run-github-workflow-locally)

Run the GitHub workflows locally with [**act**](https://github.com/nektos/act):

```
act -j unit-tests -P ubuntu-latest=shivammathur/node:latest
```

Run tests for a specific PHP and Laravel version:

```
act -j unit-tests --matrix php:8.3 --matrix laravel:"11.*" -P ubuntu-latest=shivammathur/node:latest
```

Available matrix options are in the [**workflow file**](.github/workflows/unit-tests.yml).

Changelog
---------

[](#changelog)

Please see the [**CHANGELOG**](CHANGELOG.md) for more information on what has changed recently.

Alternatives
------------

[](#alternatives)

- [azure-oss/azure-storage-php-adapter-laravel](https://github.com/Azure-OSS/azure-storage-php-adapter-laravel)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance86

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.5% 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 ~101 days

Total

4

Last Release

84d ago

Major Versions

0.2.0 → 1.0.02026-01-21

### Community

Maintainers

![](https://www.gravatar.com/avatar/5dc4d6c2b77a65a72bdb442837125ef9ade0cd29f4913f37da70d383367b2a05?d=identicon)[shineability](/maintainers/shineability)

---

Top Contributors

[![shineability](https://avatars.githubusercontent.com/u/2188719?v=4)](https://github.com/shineability "shineability (21 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")

---

Tags

phpfilesystemlaravelstorageazureblob

###  Code Quality

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/shineability-laravel-azure-blob-storage/health.svg)

```
[![Health](https://phpackages.com/badges/shineability-laravel-azure-blob-storage/health.svg)](https://phpackages.com/packages/shineability-laravel-azure-blob-storage)
```

###  Alternatives

[microsoft/azure-storage-blob

This project provides a set of PHP client libraries that make it easy to access Microsoft Azure Storage Blob APIs.

5516.0M60](/packages/microsoft-azure-storage-blob)[zing/laravel-flysystem-obs

Flysystem Adapter for OBS

1211.2k](/packages/zing-laravel-flysystem-obs)[innoge/laravel-rclone

A sleek PHP wrapper around rclone with Laravel-style fluent API syntax

174.1k](/packages/innoge-laravel-rclone)

PHPackages © 2026

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