A powerful Laravel storage driver that enables seamless synchronization of files across multiple disks.
- Multi-Disk Support: Define multiple remote disks to store your files.
- Asynchronous Sync: Files are synced to all remote disks asynchronously, ensuring high availability.
- Optimized Access: Files are accessed from the readable disks priority wise.
Install the package via Composer:
composer require ssntpl/cloud-storage
-
Configuration: In your Laravel application's
config/filesystems.php
, define your disks.'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app/private'), 'write_enabled' => true, 'write_priority' => 2, 'read_priority' => 1, 'retention' => 1, ], 'cloud_disk' => [ 'driver' => 'cloud', 'disks' => [ 'local', // just write here disk name and other configuration variable can be set on this disk configuration array as mention above. [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'write_enabled' => true, // false means read only opertions should be done. default is true 'write_priority' => 1, // 0 means least priority. default is 0 'read_priority' => 2, // 0 means least priority. default is 0 'retention' => 0, // in days, 0 means no retention. default is 0. if retention is greater than 0, make sure your queue connection sould not be sync. ], ], ], // Define other disks (remote disks used in the cloud disk above) ],
-
Upload Files: When uploading files using this driver, they will first be stored on the cache disk and then asynchronously synced to all defined remote disks.
Storage::disk('cloud_disk')->put('path/to/file.jpg', $fileContents);
-
Access Files: The driver will check the read disks priority wise.
$file = Storage::disk('cloud_disk')->get('path/to/file.jpg');
- Improved Sync Strategies: Additional options for sync strategies, such as prioritizing certain disks.
- Monitoring and Alerts: Integrate monitoring for sync failures and performance metrics.
Please see CHANGELOG for detailed information on the latest changes.
If you discover any security-related issues, please email support@ssntpl.com instead of using the issue tracker.
This package is licensed under the MIT License. See the License File for more details.