ssntpl/cloud-storage

Laravel 存储驱动,用于异步同步文件到多个磁盘

v0.1.2 2024-09-17 11:32 UTC

README

Latest Version on Packagist Total Downloads

一个强大的 Laravel 存储驱动,支持在多个磁盘上无缝同步文件,并集成了缓存磁盘以优化性能。

功能

  • 多磁盘支持:定义多个远程磁盘以存储文件。
  • 缓存磁盘:文件首先上传到指定的缓存磁盘,以便快速访问。
  • 异步同步:文件异步同步到所有远程磁盘,确保高可用性。
  • 优化访问:首先从缓存磁盘访问文件;如果未找到,则按定义的顺序从远程磁盘检索。

安装

使用 Composer 安装此包

composer require ssntpl/cloud-storage

用法

  1. 配置:在您的 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)
    ],
  2. 上传文件:当使用此驱动程序上传文件时,它们将首先存储在缓存磁盘上,然后异步同步到所有定义的远程磁盘。

    Storage::disk('cloud_disk')->put('path/to/file.jpg', $fileContents);
  3. 访问文件:驱动程序将首先检查缓存磁盘;如果文件未在那里找到,它将按配置顺序逐个检查每个远程磁盘。

    $file = Storage::disk('cloud_disk')->get('path/to/file.jpg');

未来改进

  • 改进的同步策略:同步策略的附加选项,例如优先考虑某些磁盘。
  • 高级缓存机制:增强缓存策略以改进特定用例的性能。
  • 监控和警报:集成同步失败和性能指标监控。

变更日志

请参阅 CHANGELOG 以获取有关最新更改的详细信息。

安全漏洞

如果您发现任何与安全相关的问题,请通过电子邮件 support@ssntpl.com 而不是使用问题跟踪器。

致谢

许可

此包根据 MIT 许可证授权。有关详细信息,请参阅 许可文件