Skip to Content
🚀 Drubase One v1.1 - 基于 Drupal 11 的多租户后端即服务平台
Docs模块BaaS File

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): array

FileApiController

文件 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