biigle / laravel-file-cache
在Laravel中从本地文件系统、云存储或公共Web服务器中检索和缓存文件
Requires
- guzzlehttp/guzzle: ^7.0
- illuminate/console: ^11.0
- illuminate/filesystem: ^11.0
- illuminate/support: ^11.0
- symfony/finder: ^7.0
Requires (Dev)
- laravel/laravel: ^11.0
- mockery/mockery: ^1.2
- phpunit/phpunit: ^10.0
- dev-master
- v5.0.0
- v4.5.2
- v4.5.1
- v4.5.0
- v4.4.0
- v4.3.0
- v4.2.0
- v4.1.1
- v4.1.0
- v4.0.1
- v4.0.0
- v3.2.3
- v3.2.2
- v3.2.1
- v3.2.0
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.0
- v2.2.6
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.0
- v2.0.2
- v2.0.1
- v2.0.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- v0.3.0
- v0.2.0
- v0.1.0
- dev-laravel-5
This package is auto-updated.
Last update: 2024-09-12 14:57:40 UTC
README
在Laravel或Lumen中从本地文件系统、云存储或公共Web服务器中检索和缓存文件。
文件缓存专门设计用于与多个并行队列工作者进行并发处理。
安装
composer require biigle/laravel-file-cache
Laravel
Laravel会自动发现服务提供者和FileCache
外观。
Lumen
将以下内容添加到bootstrap/app.php
$app->register(Biigle\FileCache\FileCacheServiceProvider::class); $app->register(Illuminate\Filesystem\FilesystemServiceProvider::class);
要使用FileCache
外观,启用$app->withFacades()
并将以下内容添加到bootstrap/app.php
if (!class_exists(FileCache::class)) { class_alias(Biigle\FileCache\Facades\FileCache::class, 'FileCache'); }
不使用外观,文件缓存实例可通过app('file-cache')
访问。
用法
查看FileCache
合约以了解文件缓存的公共API。示例
use FileCache; use Biigle\FileCache\GenericFile; // Implements Biigle\FileCache\Contracts\File. $file = new GenericFile('https://example.com/images/image.jpg'); FileCache::get($file, function ($file, $path) { // do stuff });
如果文件URL指定了除http
或https
以外的协议(例如mydisk://images/image.jpg
),文件缓存将在filesystems.disks
中配置的相应存储磁盘中查找文件。您不能使用本地文件路径作为URL(例如/vol/images/image.jpg
)。相反,配置一个带有local
驱动器的存储磁盘。
配置
文件缓存自带合理的默认配置。您可以在file-cache
命名空间中或使用环境变量来覆盖它。
file-cache.max_file_size
默认:-1
(任何大小)环境:FILE_CACHE_MAX_FILE_SIZE
缓存文件允许的最大大小(以字节为单位)。设置为-1
以允许任何大小。
file-cache.max_age
默认:60
环境:FILE_CACHE_MAX_AGE
缓存中文件的最大年龄(以分钟为单位)。较旧的文件将被删除。
file-cache.max_size
默认:1E+9
(1 GB)环境:FILE_CACHE_MAX_SIZE
文件缓存的最大大小(软限制)(以字节为单位)。如果缓存超过此大小,则删除旧文件。
file-cache.path
默认:'storage/framework/cache/files'
用于文件缓存的目录。
file-cache.timeout
默认:5.0
环境:FILE_CACHE_TIMEOUT
读取远程文件的读取超时时间(以秒为单位)。如果流在超过此时间段内没有传输数据(或无法建立连接),则缓存文件失败。
file-cache.prune_interval
默认 '*/5 * * * *'
(每五分钟)
计划任务删除文件缓存的间隔。
file-cache.mime_types
默认:[]
(允许所有类型)
允许缓存文件的MIME类型数组。将失败缓存其他类型的文件。
清除
在调用php artisan cache:clear
时清除文件缓存。
测试
FileCache
外观提供了易于测试的模拟。模拟实际上不会检索和存储任何文件,而只是使用模拟的文件路径执行回调函数。
use FileCache; use Biigle\FileCache\GenericFile; FileCache::fake(); $file = new GenericFile('https://example.com/image.jpg'); $path = FileCache::get($file, function ($file, $path) { return $path; }); $this->assertFalse($this->app['files']->exists($path));