A powerful Laravel storage driver that enables seamless synchronization of files across multiple disks, with an integrated cache disk for optimized performance.
- Multi-Disk Support: Define multiple remote disks to store your files.
- Cache Disk: Files are first uploaded to a designated cache disk for quick access.
- Asynchronous Sync: Files are synced to all remote disks asynchronously, ensuring high availability.
- Optimized Access: Files are accessed from the cache disk first; if not found, they are retrieved from the remote disks in the defined order.
Install the package via Composer:
composer require ssntpl/cloud-storage
-
Configuration: In your Laravel application's
config/filesystems.php
, define your disks, including the cache disk.'disks' => [ 'cloud_disk' => [ 'driver' => 'cloud', 'cache_disk' => 'local', 'remote_disks' => [ 'remote_disk_1', 'remote_disk_2', 's3', 'minio', // Add more remote disks as needed... ], 'cache_time' => 24, // Time (in hours) to cache files on the cache disk ], // Define other disks (including cache disk, and 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 cache disk first; if the file isn't found there, it will sequentially check each remote disk as configured.
$file = Storage::disk('cloud_disk')->get('path/to/file.jpg');
- Improved Sync Strategies: Additional options for sync strategies, such as prioritizing certain disks.
- Advanced Caching Mechanisms: Enhance caching strategies to improve performance in specific use cases.
- 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.