Download the PHP package alinauf/laravel-azure-storage without Composer
On this page you can find all versions of the php package alinauf/laravel-azure-storage. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-azure-storage
Laravel Azure Storage
Azure Blob Storage filesystem driver for Laravel using the Azure REST API directly. No deprecated SDK dependencies.
Features
- Full Flysystem Integration - Works seamlessly with Laravel's Storage facade
- REST API Based - Uses Azure Blob Storage REST API directly, no deprecated SDKs
- Shared Key Authentication - Secure HMAC-SHA256 authentication
- SAS Token Support - Generate temporary signed URLs for secure access
- Full CRUD Operations - Read, write, delete, copy, move files
- Directory Operations - List contents, delete directories
- Metadata Support - Get file size, last modified time, MIME type
- CDN Support - Custom URL support for Azure CDN or custom domains
Requirements
- PHP 8.2+
- Laravel 11.0+ or 12.0+
Installation
Install the package via Composer:
The service provider will be auto-discovered by Laravel.
Publish Configuration (Optional)
Configuration
Add the following environment variables to your .env file:
Then configure a disk in config/filesystems.php:
Usage
Basic File Operations
Getting File Information
Directory Operations
URLs
Using as Default Disk
To use Azure as your default filesystem disk, set in your .env:
Then you can use the Storage facade directly:
Private Files & Temporary URLs
Azure Blob Storage controls access at the container level, not per-file like S3. This means all blobs in a container share the same access level. The recommended approach for serving private files is:
- Keep your container private (the default)
- Use
temporaryUrl()to generate time-limited SAS-signed URLs for frontend display
Visibility Model
| Azure Access Level | Flysystem Visibility | Description |
|---|---|---|
| Private (no header) | private |
No anonymous access. All requests require authentication or SAS token. |
| Blob | public |
Anonymous read access for individual blobs only. |
| Container | public |
Anonymous read and list access for all blobs. |
Recommended Workflow
Visibility Configuration
Add visibility settings to your disk config in config/filesystems.php:
visibility.default— The fallback visibility when the container access level cannot be determined. Defaults toprivate.visibility.allow_set— Whenfalse(default), callingsetVisibility()throws an exception with a helpful message. Set totrueto allow changing the container's public access level via the Flysystem API.
Note: Since Azure controls access at the container level, the
$pathargument tovisibility()andsetVisibility()is ignored — the operation applies to the entire container.
SAS Token Generation
For advanced SAS token generation, you can use the SasTokenGenerator directly:
SAS Permissions
| Permission | Description |
|---|---|
r |
Read |
w |
Write |
d |
Delete |
l |
List |
a |
Add |
c |
Create |
Direct Client Usage
For advanced use cases, you can use the client directly:
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details on:
- Setting up the development environment
- Running tests
- Code style guidelines
- Submitting pull requests
Security
If you discover a security vulnerability, please email directly instead of using the issue tracker.
Credits
- Ali Nauf
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-azure-storage with dependencies
illuminate/contracts Version ^11.0|^12.0
illuminate/http Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0
league/flysystem Version ^3.0