getActiveConfig(); $this->uploadService = OssStorageFactory::getInstance()->make($config); } catch (\Throwable $e) { // 配置异常时回退本地,避免整站上传不可用 $this->uploadService = OssStorageFactory::getInstance()->make([ 'driver' => 'local', 'path_prefix' => 'uploads', 'domain' => '', ]); } } /** * 上传图片到当前启用的存储 * * @param mixed $file 上传文件对象 */ public function uploadImage($file): array|bool { $ext = $file->getClientOriginalExtension(); $key = 'spa/image/' . date('Ymd') . '/' . 'cc_upload_' . Str::random() . uniqid() . '.' . $ext; $result = $this->uploadService->uploadVideo($file, $key); if (!$result) { $this->utils->errorThrow('图片上传失败'); } FileService::getInstance()->create([ 'user_id' => $this->userId, 'url' => $result['url'], ]); return $result; } /** * 上传视频到当前启用的存储 * * @param mixed $file 上传文件对象 */ public function uploadVideo($file): array|bool { $ext = $file->getClientOriginalExtension(); $key = 'spa/video/' . date('Ymd') . '/' . 'cc_upload_' . Str::random() . uniqid() . '.' . $ext; $result = $this->uploadService->uploadVideo($file, $key); if (!$result) { $this->utils->errorThrow('视频上传失败'); } FileService::getInstance()->create([ 'user_id' => $this->userId, 'url' => $result['url'], ]); return $result; } }