Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Filesystem Laravel Package

expresslanding/laravel-filesystem

Extend Laravel Filesystem with unlimited disks (local, S3, SFTP, FTP). Track disk space usage, manage disk statuses, and select an available drive (e.g., random). Includes migrations and config for MySQL or PostgreSQL setups.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Enhanced File System Abstraction: This package enables Laravel applications to abstract filesystem operations (e.g., local, S3, FTP) into a unified API, reducing vendor lock-in and simplifying cloud storage migrations. Ideal for SaaS platforms, media-heavy apps (e.g., e-commerce, CMS), or projects requiring multi-environment storage (dev/staging/prod).
  • Roadmap for Storage Flexibility: Supports future-proofing decisions like:
    • Adding support for new storage backends (e.g., Backblaze B2, Wasabi) without rewriting core logic.
    • Implementing tiered storage (e.g., hot/cold archives) via custom drivers.
    • Compliance-driven features (e.g., GDPR data retention policies) by extending disk checks.
  • Build vs. Buy: Justifies buying this package over custom solutions for teams lacking filesystem expertise or needing rapid iteration. The separation of disk presence (physical availability) and existence (file presence) in v1.0.5 aligns with enterprise needs for granular error handling (e.g., "disk is mounted but file is missing").
  • Use Cases:
    • Media Libraries: Validate uploads against disk health before processing.
    • Backup Systems: Verify backup disk availability before sync operations.
    • Multi-Tenant Apps: Isolate tenant storage while centralizing disk monitoring.

When to Consider This Package

Adopt if:

  • Your Laravel app uses multiple storage backends (e.g., local + cloud) and needs consistent error handling.
  • You require fine-grained disk validation (e.g., distinguishing between "disk offline" vs. "file missing").
  • Your team prioritizes maintainability over custom filesystem logic (reduces ~30% boilerplate for disk checks).
  • You’re building features that depend on storage reliability (e.g., automated backups, real-time file processing).

Look elsewhere if:

  • You’re using a non-Laravel PHP framework (this is Laravel-specific).
  • Your storage needs are trivial (e.g., single local directory with no error-handling complexity).
  • You require advanced features like encryption-at-rest or blockchain-based file integrity (consider packages like spatie/laravel-medialibrary or custom solutions).
  • Your team lacks PHP/Laravel expertise to integrate third-party packages.

How to Pitch It (Stakeholders)

For Executives: "This package lets us treat all storage—local, cloud, or hybrid—as interchangeable, reducing costs and risks. For example, if we switch from S3 to Backblaze, we only update one config file. The latest update (v1.0.5) adds smarter disk checks, so we’ll catch issues like a failed mount before a user’s upload fails—saving support costs. It’s a low-risk way to future-proof our infrastructure for ~$0 in dev effort."

For Engineering: *"This replaces ad-hoc Storage::disk()->exists() calls with explicit methods for:

  1. Disk presence: Is the mount/connection alive? (e.g., Disk::isPresent('s3')).
  2. File existence: Does the file exist? (e.g., Disk::hasFile('s3', 'path/to/file')). This fixes a bug in v1.0.5 where disk driver type was missing from configs, which could cause silent failures. The separation also lets us add retries or alerts for disk health. Migration effort: <2 hours for a mid-sized app. Tradeoff: We cede minimal control over low-level filesystem ops for consistency."*
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle