sykez/laravel-storage-copy
A small Laravel package for copying files and directories between storage disks, making it easy to move or duplicate content across local, S3, or other configured filesystems with a simple, fluent API.
Architecture fit
Storage facade / Flysystem abstraction, meaning it inherits disk definitions from config/filesystems.php — same credentials, endpoints, and visibility rules the app already uses. No new secrets or infrastructure required.Integration feasibility
composer require, package auto-discovery (Laravel 5.5+), then invoke php artisan storage:copy .... No migrations, no published config (verify), no facade aliases.Technical risk
illuminate/support constraint and last release cadence before committing.readStream/writeStream) or buffers files into memory; unknown whether it verifies checksums, handles partial failure, or resumes. This is the dominant risk for anything beyond toy datasets.Key questions
illuminate/support?--dry-run?Stack fit
composer require --dev if it is only invoked for environment migrations; if it must run inside a production deploy image, promote it to a regular require or vendor it.Migration path
composer remove, which is a strong safety property for a tool in this class.Compatibility
composer.json and test against the specific Laravel major in use.Sequencing
rclone or native aws s3 sync instead — parallel, resumable, verifiable. Reserve this package for small, bounded, one-off copies where its simplicity is an asset.Maintenance
Storage::allFiles, readStream, writeStream).Support
Scaling
Failure modes
Ramp-up
Storage::copy. The actual cost is documentation: write an internal runbook covering disk configuration, batch strategy, verification, and rollback.TPM recommendation: Viable as a small, low-blast-radius operational utility for bounded one-off copies inside an existing Laravel stack. Do not adopt it as a critical dependency or for large-scale migration without either forking it into your codebase or selecting a mature sync tool. Gate adoption on the key questions above; if those answers are unavailable, budget a few days to reimplement internally rather than inherit unverified behavior.
How can I help you explore Laravel packages today?