ssntpl / cloud-storage
Laravel 存储驱动,用于异步同步文件到多个磁盘
v0.1.2
2024-09-17 11:32 UTC
Requires
- php: ^7.4|^8.0
- laravel/framework: ^9.0|^10.0|^11.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.17
- nunomaduro/collision: ^6.0
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
This package is auto-updated.
Last update: 2024-09-23 13:22:01 UTC
README
一个强大的 Laravel 存储驱动,支持在多个磁盘上无缝同步文件,并集成了缓存磁盘以优化性能。
功能
- 多磁盘支持:定义多个远程磁盘以存储文件。
- 缓存磁盘:文件首先上传到指定的缓存磁盘,以便快速访问。
- 异步同步:文件异步同步到所有远程磁盘,确保高可用性。
- 优化访问:首先从缓存磁盘访问文件;如果未找到,则按定义的顺序从远程磁盘检索。
安装
使用 Composer 安装此包
composer require ssntpl/cloud-storage
用法
-
配置:在您的 Laravel 应用程序的
config/filesystems.php
文件中定义您的磁盘,包括缓存磁盘。'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) ],
-
上传文件:当使用此驱动程序上传文件时,它们将首先存储在缓存磁盘上,然后异步同步到所有定义的远程磁盘。
Storage::disk('cloud_disk')->put('path/to/file.jpg', $fileContents);
-
访问文件:驱动程序将首先检查缓存磁盘;如果文件未在那里找到,它将按配置顺序逐个检查每个远程磁盘。
$file = Storage::disk('cloud_disk')->get('path/to/file.jpg');
未来改进
- 改进的同步策略:同步策略的附加选项,例如优先考虑某些磁盘。
- 高级缓存机制:增强缓存策略以改进特定用例的性能。
- 监控和警报:集成同步失败和性能指标监控。
变更日志
请参阅 CHANGELOG 以获取有关最新更改的详细信息。
安全漏洞
如果您发现任何与安全相关的问题,请通过电子邮件 support@ssntpl.com 而不是使用问题跟踪器。
致谢
许可
此包根据 MIT 许可证授权。有关详细信息,请参阅 许可文件。