浏览全部文档 · 27/37

功能简介

Content Moderation 可为指定 Table 或 Bucket 配置写入前文本/图片审核。启用后,不合规内容在持久化前被拒绝,并生成可查询的审核记录;调用链依赖项目总开关、资源配置和可用 Moderation Provider。

当前支持范围

  • Content Moderation(APPBASE_ENHANCED):为指定数据表或存储桶启用文本、图片写入前审核,拒绝不合规内容并保留可查询的审核记录;需要实例配置审核 Provider。

适用场景

  • 在 Row 写入前检查文本字段。
  • 在 File 上传前检查图片内容。
  • 通过审核日志追踪允许、拒绝或失败结果。

前置条件

  • 实例配置了审核 Provider。
  • Project 已开启 Moderation。
  • 目标 Table/Bucket 已创建资源级审核配置。

Console 操作路径

Console → Project → Moderation 配置全局能力并查看 Logs;Table → Moderation 或 Bucket → Moderation 配置资源规则。入口是否出现取决于项目开关和当前角色。

SDK 示例

SDK · TypeScript
import { Client } from 'appbase-console-sdk';
import { Moderation } from '<CONSOLE_SOURCE>/lib/sdk/moderation';

const client = new Client()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>')
  .setKey('<API_KEY>');
const moderation = new Moderation(client);
await moderation.createConfig({
  resourceType: 'collections',
  resourceId: '<TABLE_ID>',
  databaseId: '<DATABASE_ID>',
  mode: 'pre',
  contentTypes: ['text'],
  enabled: true,
});

const logs = await moderation.listLogs({ total: true });

REST 示例

REST · Bash
curl 'https://<APPBASE_HOST>/v1/moderation-configs' \
  -X POST \
  -H 'X-Appwrite-Project: <PROJECT_ID>' \
  -H 'X-Appwrite-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{"resourceType":"collections","resourceId":"<TABLE_ID>","databaseId":"<DATABASE_ID>","mode":"pre","contentTypes":["text"],"enabled":true}'

权限模型

配置和日志读取需要 moderation 管理 Scope;被审核的 Row/File 写入仍按原有资源权限执行。Provider Credential 与原始高敏感内容不能出现在公开日志或无权限响应中。

常见错误

现象处理建议
内容被拒绝向用户返回稳定业务提示,不暴露 Provider 原始判定细节。
Provider unavailable按项目 fail-closed 设计处理;不要静默绕过审核。
配置目标不存在核对 resourceType、databaseId、tableId/bucketId。
403检查 moderation Scope 与资源管理权限。

当前限制

  • 准确率、语言与图片能力取决于 Provider。
  • Moderation 不是法律合规认证,也不能替代人工复核。
  • 启用审核会增加写入延迟;Provider 故障时应保持安全失败语义。

Appwrite 兼容说明

Storage/Table 是兼容资源;写入前 Moderation 与日志是 AppBase 增强。

AppBase 增强说明

AppBase 把文本/图片审核绑定到实际数据写入边界,并提供资源配置与审计日志。

发布状态和验证 Commit

origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353

权威来源文件列表

  • backend-candidate:src/Appwrite/Platform/Modules/Moderation/Http/Moderation/
  • backend-candidate:tests/e2e/Services/Moderation/
  • frontend-candidate:console/src/lib/sdk/moderation.ts
  • frontend-candidate:console/src/routes/(console)/project-[region]-[project]/moderation/
  • origin-main:docs/products/v2.3.x/moderation/content-moderation.md

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/advanced/security。上游页面不是 AppBase 实现证据。

继续阅读