codebar-ag/laravel-flysystem-cloudinary
Flysystem adapter that plugs Cloudinary into Laravel's filesystem, letting you store, retrieve, and manage uploaded images and files through the familiar Storage facade. Simple configuration and seamless integration with Laravel's native upload, URL generation, and file handling APIs.
Architecture fit
Storage disk. It slots into the existing config/filesystems.php disk model, so it is architecturally additive — no changes to application code that already uses the Storage facade.resource_type, type, transformation URLs, folder-as-metadata) is not a POSIX-like filesystem. Flysystem's contract assumes path-based semantics, deterministic listing, and read-back streams. Expect the abstraction to leak on readStream, listContents, visibility, move/copy, and directory operations.put() on upload + url() for delivery, which is 80% of what a typical Laravel media feature needs. Where it does not: archival storage, private document handling, and anything requiring byte-for-byte retrieval semantics.Integration feasibility
composer require, publish config, add a disk entry, set credentials via environment. A developer can have a working spike in under a day.Technical risk
Key questions
put, get, readStream, exists, delete, listContents, url, temporaryUrl, setVisibility?url(), or do we hand-build Cloudinary URLs outside the adapter?Stack fit
Storage disks. It is a driver, not a framework — it does not restructure the app, which is exactly what we want from a dependency of this size.Migration path
cloudinary disk without removing any existing disk.MediaStore interface (put / delete / url / exists) that wraps Storage::disk('cloudinary') and hides Cloudinary-specific concepts (resource_type, public ID parsing, transformations). Application code depends on the interface, not the package. This is the single most important decision in the plan — it converts a bus-factor-one dependency into a swappable implementation detail.legacy_path → public_id mapping table. Keep originals in place for the duration of the migration; the mapping table is the rollback story.Compatibility
codebar-ag/laravel-flysystem-cloudinary and its underlying Flysystem adapter; constrain them in composer.json and treat major bumps as planned work, not composer update noise.Sequencing
MediaStore interface, config, secrets management, contract tests in CI.Maintenance
Support
Scaling
url() per breakpoint can multiply spend fast. Compare explicitly against S3 + an image proxy to know what the convenience costs.Failure modes
onerror fallbacks and pre-generated variants for critical assets.MediaStore interface and a fork-and-vendor path.Ramp-up
Storage — the disk API is familiar, roughly half a day to first productive commit.How can I help you explore Laravel packages today?