impratick / laravel-azure-blob-storage
Azure Blob Storage Wrapper with prefix support for Laravel framework
Installs: 4 693
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 3
Type:project
pkg:composer/impratick/laravel-azure-blob-storage
Requires
- php: ^7.2
- illuminate/support: ~5.7|~5.8|^6.0
- league/flysystem-azure-blob-storage: ^0.1.6
Requires (Dev)
- larapack/dd: ^1.0
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2025-11-22 01:35:53 UTC
README
Laravel Azure Blob Storage wrapper for Flysystem Azure Blob Storage with prefix support and easy integration with Spatie's Media Library.
Package includes:
- A Service Provider for Laravel
- Adding an
azuredisk for Laravel's File Storage abstraction of Flysystem
- Adding an
- Integration with Spatie's Media Library providing
- A
AzureBlobUrlGenerator(https://docs.spatie.be/laravel-medialibrary/v7/advanced-usage/generating-custom-urls)
- A
Installation
You can install the package via composer:
composer require impratick/laravel-azure-blob-storage
Usage
The Service Provider is automatically registered on Laravel >= 5.5.
Configure your disk in config/filesystem.php
'disks' => [
'azure' => [
'driver' => 'azure',
'account' => [
'name' => env('AZURE_ACCOUNT_NAME'),
'key' => env('AZURE_ACCOUNT_KEY'),
],
'endpoint-suffix' => env('AZURE_ENDPOINT_SUFFIX', 'core.windows.net'),
'container' => env('AZURE_CONTAINER', 'public'),
'prefix' => env('AZURE_BLOB_FOLDER_NAME', null),
]
]
Here prefix is needed if you have custom folder structure, if not then set to null
- project-storage
- local/folders
- staging/folders
- production/folders
So as per above scenario value of AZURE_CONTAINER would be project-storage and AZURE_BLOB_FOLDER_NAME would be as per environment (local/staging/production) any.
For integration with Media Library
Install and configure Media Library.
Add the following to config/medialibrary.php
'azure' => [
'domain' => 'https://' . env('AZURE_ACCOUNT_NAME') . '.blob.' . env('AZURE_ENDPOINT_SUFFIX') .
'/' . env('AZURE_CONTAINER') .
(env('AZURE_BLOB_FOLDER_NAME') ? '/' . env('AZURE_BLOB_FOLDER_NAME') : ''),
],
/*
* When urls to files get generated, this class will be called. Leave empty
* if your files are stored locally above the site root or on s3.
*/
'url_generator' => (env('MEDIA_DISK', 'public') == 'azure'
? Impratick\ExtendedAzureBlobStorage\MediaLibrary\UrlGenerator\AzureBlobUrlGenerator::class
: null),
Changelog
Please review CHANGELOG for more information.
Security
If you discover any security related issues, please feel free to report at padia.pratik94@gmail.com.
Credits
This package was made based on A skeleton repository for Spatie's PHP Packages.
License
The MIT License (MIT). Please see License File for more information.