BaaS File 模块
文件管理模块 - 项目级文件上传、存储和访问控制。
📦 模块信息
- 依赖: baas_project
- 位置:
web/modules/custom/baas_file/
🏗️ 核心功能
文件上传
- 支持多种文件类型
- 自动文件验证
- 项目级文件归属
访问控制
- 项目成员权限验证
- 文件 URL 签名
- 访问日志记录
🔧 主要类和方法
FileService
文件管理服务 - src/Service/FileService.php
// 上传文件
public function uploadFile(UploadedFile $file, string $project_id): int
// 获取文件信息
public function getFileInfo(int $fid): ?array
// 删除文件
public function deleteFile(int $fid): bool
// 获取项目文件列表
public function getProjectFiles(string $project_id): arrayFileApiController
文件 API 控制器 - src/Controller/FileApiController.php
// POST /api/v1/{tenant_id}/project/{project_id}/media/upload
public function uploadMedia(Request $request): JsonResponse
// GET /api/v1/{tenant_id}/projects/{project_id}/files/{file_id}
public function getFileInfo(int $file_id): JsonResponse
// DELETE /file-manager/api/{tenant_id}/projects/{project_id}/files/{file_id}
public function deleteFile(int $file_id): JsonResponse📖 使用示例
文件上传(在实体中)
// 文件通过实体 API 上传
// POST /api/v1/{tenant_id}/projects/{project_id}/entities/users
// Content-Type: multipart/form-data
//
// name=张三
// avatar=@avatar.jpg获取文件信息
$file_service = \Drupal::service('baas_file.service');
$file_info = $file_service->getFileInfo($fid);
// 返回: fid, filename, uri, filesize, filemime, created🔌 服务注册
baas_file.services.yml:
services:
baas_file.service:
class: Drupal\baas_file\Service\FileService
arguments:
- '@file_system'
- '@database'
- '@baas_project.manager'🔗 相关文档
Last updated on