Illuminate Filesystem

Laravel's filesystem component for unified local and cloud file storage

Library
Composer
vv13.26.1
152stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
51/100Fair
Development Activity52
Maintenance0
Community80
Maturity60
Momentum12

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
85/100Excellent
Architecture87
Code Quality90
Innovation78
Learning Curve86

Illuminate Filesystem (illuminate/filesystem) is the filesystem abstraction of the Laravel framework, distributed as a standalone Composer package via a read-only subtree split of laravel/framework. It provides a single API for reading, writing, and managing files across local disks and cloud storage such as Amazon S3, FTP, and SFTP, built on top of the League Flysystem library.

The component exposes a FilesystemManager and driver adapters so application code can switch storage backends through configuration rather than code changes. It also includes low-level filesystem helpers, uploaded-file handling, lockable files, and response helpers for serving and downloading stored files.

What You Get

  • A FilesystemManager resolving configurable storage disks
  • Adapters for local storage and Amazon S3 (plus FTP/SFTP via Flysystem)
  • A low-level Filesystem class for direct file operations
  • Uploaded-file handling and file serving/download response helpers
  • Lockable files and relative symbolic link support

Common Use Cases

  • Storing user uploads on local disk in development and S3 in production
  • Serving or streaming downloadable files from a configured disk
  • Manipulating files and directories with a consistent, testable API

Under The Hood

Architecture - The component centers on FilesystemManager, which resolves named disks and returns a FilesystemAdapter wrapping a Flysystem instance. LocalFilesystemAdapter and AwsS3V3Adapter implement concrete backends, while the standalone Filesystem class offers direct, low-level operations (read, write, copy, hash, require). Supporting classes include LockableFile for exclusive access, ReceiveFile/ServeFile for HTTP file handling, and a FilesystemServiceProvider for framework integration.

Tech Stack - Pure PHP targeting PHP 8.3+, depending on Illuminate collections, contracts, macroable, and support, plus symfony/finder. Cloud and network drivers are optional, pulling in league/flysystem and its S3/FTP/SFTP adapters only when needed via suggested dependencies.

Code Quality - As a first-party Laravel component maintained within laravel/framework, it benefits from the framework’s comprehensive test suite, CI, and large contributor base. The manager/adapter split and reliance on the well-tested Flysystem library keep the surface robust and consistent.

API Design - The disk-oriented API is highly ergonomic: Storage::disk('s3')->put($path, $contents), Storage::download($path), and Storage::url($path) read naturally and are identical across backends. Official Laravel documentation covers configuration and every disk driver, so switching from local to cloud storage is a configuration change rather than a rewrite.

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