Flysystem Azure Blob Storage Adapter

Flysystem adapter for reading and writing files on Azure Blob Storage from PHP.

SDK
Composer
v3.31.0
55stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
29/100Needs Attention
Development Activity4
Maintenance0
Community40
Maturity60
Momentum12

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
70/100Good
Architecture78
Code Quality70
Innovation68
Learning Curve62

league/flysystem-azure-blob-storage is a Flysystem v3 adapter for Microsoft Azure Blob Storage. It lets PHP applications treat an Azure storage container as a standard Flysystem filesystem, so the same read, write, delete, list, and metadata operations used for local disks or other cloud object stores work transparently against Azure blobs.

Because it plugs into League Flysystem, storage backends stay interchangeable: an app can move files to or from Azure without changing its filesystem calls, and it integrates cleanly with frameworks like Laravel that build their storage layer on Flysystem.

What You Get

  • A Flysystem v3 adapter targeting Azure Blob Storage
  • Read, write, delete, copy, move, and list operations against blob containers
  • File metadata retrieval (size, MIME type, last modified, MD5 checksum)
  • Public URL generation and shared-access-signature (SAS) temporary URLs
  • Backend-agnostic file handling via the standard Flysystem API
  • Compatibility with framework filesystem abstractions (e.g. Laravel Storage)

Common Use Cases

  • Storing user uploads in an Azure Storage container from a PHP app
  • Syncing generated files, exports, or backups to Azure Blob Storage
  • Adding Azure as an interchangeable Flysystem disk alongside S3 or local storage
  • Generating temporary, signed download links for private blobs

Under The Hood

Architecture - The library is a single-file adapter: AzureBlobStorageAdapter.php implements League Flysystem’s FilesystemAdapter, PublicUrlGenerator, ChecksumProvider, and TemporaryUrlGenerator contracts, translating Flysystem operations (write, read, delete, copy, move, listContents, metadata lookups) into calls on a BlobRestProxy client from the official Azure SDK, using PathPrefixer to scope paths within a container and normalizing Azure BlobProperties responses into Flysystem’s FileAttributes/DirectoryAttributes value objects. Tech Stack - PHP 8.0.2+, built on league/flysystem ^3.10 and Microsoft’s official microsoft/azure-storage-blob SDK (^1.1), distributed under the MIT license with plain PSR-4 autoloading and no build step. Code Quality - The adapter is exercised by League’s shared FilesystemAdapterTestCase conformance test suite, which runs the same scenarios used across all Flysystem adapters against a live Azure container (skipped in CI without credentials); Azure-specific limitations like unsupported visibility/ACLs and directory creation are explicitly skipped rather than silently passing, and every Azure exception is wrapped in Flysystem’s typed UnableTo* exceptions for consistent error handling. API Design - Developer experience is deliberately thin: construct the adapter with a BlobRestProxy client, container name, and optional prefix, then hand it to Flysystem’s Filesystem facade; all subsequent usage follows Flysystem’s well-documented, uniform API, so no Azure-specific knowledge is needed for day-to-day file operations beyond the initial connection setup.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search