catlabinteractive / central-storage-client
CatLab中央存储的客户端。
v1.0.6
2021-05-15 08:49 UTC
Requires
- guzzlehttp/guzzle: >=6.0
Requires (Dev)
- laravel/framework: 5.4.*
- phpunit/phpunit: *
This package is auto-updated.
Last update: 2024-09-27 16:52:28 UTC
README
中央存储是Laravel中构建的存储引擎。它包括重复上传检测,支持即时(但缓存)图像调整大小,并允许您设置'处理器'来处理更复杂的文件转换,如视频转码等。
设置
请遵循中央存储项目页面中描述的设置说明来设置存储系统。一旦设置完成,您可以将此库包含到项目中以开始存储资源。
设置您的客户端项目(在Laravel中)
中央存储提供标准REST API,因此可以被任何语言或框架消费。在这里我们将关注现有的Laravel客户端。请注意,实现新的客户端非常简单,因为只有少数方法需要实现。
在您的Laravel项目中运行 composer require catlabinteractive/central-storage-client
然后,在您想要上传文件的地方初始化客户端
$centralStorageClient = new CentralStorageClient( 'https://your-central-storage-url.com', 'your_key', 'your_secret', 'cdn_frontend_url' // (optional) );
或者,如果您愿意,您可以使用使用默认配置文件的提供者
'providers' => [ [...] CatLab\CentralStorage\Client\CentralStorageServiceProvider::class, ], 'aliases' => [ [...] 'CentralStorage' => CatLab\CentralStorage\Client\CentralStorageClientFacade::class, ] ]
PHP客户端消耗Symfony的文件对象。这意味着您可以直接从Laravel上传文件。客户端返回一个Eloquent模型'Asset',可以直接保存到数据库中(迁移文件可在central-storage-client/database
中找到)。
<?php use App\Models\Attachments\Asset; use Illuminate\Http\Request; class AssetController { /** * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function upload(Request $request) { $file = $request->file()->first(); if (!$file) { abort(400, 'Please provide a valid file.'); } if (!$file->isValid()) { abort(400, 'File not valid: ' . $file->getErrorMessage()); } /** @var Asset $asset */ $asset = \CentralStorage::store($file); $asset->save(); return response()->json($asset->getData()); } }