ReboFiles文档
开始3
什么是 ReboFiles
快速开始
可运行的演示
集成到你的应用6
React 组件
Headless:你自己的界面
不使用框架
样式与主题
键盘与无障碍
语言
文件9
上传
预览与查看器
搜索
实时更改与大文件夹
评论
星标与字段
版本、回收站与空间
打包下载 .zip
Word 文档
服务器14
路由
框架与登录
谁可以做什么
存储:S3、GCS、Azure 与磁盘
检查上传
元数据:SQLite 与 Postgres
数据库结构
共享与链接
动态与通知
钩子、日志与限制
保留、法律保留与导出
桌面端与其他来源
同步文件夹
上线生产环境
协作1
AI 助手(MCP)
参考5
包
组件与 hooks
客户端 API
HTTP 路由
状态与路线图
↑↓ 移动↵ 打开Esc 关闭38 个页面

参考 HTTP 路由

HTTP 路由

位于处理器的 base 之下,本文档中为 /api/files。构建本网站时从 packages/server/src/api.ts 开头的注释中读取,因此包含代码中的全部路由;每条路由的作用在此译出。请求和响应体均为 JSON;拒绝时返回 { error, message } 及相应状态码:message 为英文,云盘会根据 error 用每个人的语言显示。
会话

已登录用户

每条路由都会询问 identify 是谁在请求,并询问 authorize 是否允许。

路由作用
GET/entries?folder=…文件夹中的内容(不指定:最顶层),以及它所在的位置
GET/entries/:id单个条目,以及它所在的位置
GET/recent最近更改的文件
GET/trash回收站中的内容
GET/starred请求者加星标的内容,最近加星标的排在前面
PUT/entries/:id/star加星标,仅对请求者
DELETE/entries/:id/star取消星标
GET/search?q=…&within=…&trashed=1按名称查找
POST/folders{ name, parent }
POST/uploads{ name, parent, type, size },或新版本用 { file, type, size }:各部分发往何处;或 { rendition: { file, version, size, width, height }, type, size }:某个版本的缩略图
POST/uploads/finish{ token, parts: [{ number, etag }] }:字节到达后,生成文件
POST/uploads/resume{ token }:继续中断的上传:已到达的部分,以及其余部分发往何处
POST/uploads/abort{ token }:放弃上传,并删除已到达的部分
PATCH/entries/:id{ name }、{ parent }、{ color } 或 { fields },加 { ifTaken: 'keep-both' } 时追加 "(2)"
GET/fields?name=…&value=…字段为该值且可读取的内容
POST/entries/:id/copy{ parent }:复制文件,内容在存储中复制;默认放在原文件旁边,或放在自己的顶层
POST/entries/:id/trash移入回收站
POST/entries/:id/restore移出回收站
DELETE/entries/:id从回收站中永久删除
POST/trash/empty清空请求者的回收站
GET/entries/:id/download?version=&inline=1&size=用于读取或在页面中显示的地址;带 size 时,返回已有的较小图片
POST/entries/:id/versions/:v/restore将较早的版本恢复为当前版本
POST/zip{ ids }:它们的 .zip 包含的内容,文件夹连同其内容,按路径排列
POST/urls{ ids, inline, size }:一次获取多个文件的地址,用于网格;以及每个地址的有效期
GET/info字节存放在哪里,以人可读的方式
GET/usage请求者占用的字节数,以及上限
GET/settings云盘的设置、请求者自己的设置,以及能否更改云盘设置
GET/people?q=与输入匹配的人,用于共享(需 `people`)
POST/people/names{ ids }:每个人的名称(需 `people.names`)
PUT/settings云盘的设置,供有 'configure' 权限的人使用
PUT/settings/mine{ language, theme }:自己的设置
GET/entries/:id/activity?limit=对它所做的操作,若是文件夹,还包括其中的内容,最新的在前
GET/search/text?q=按文件中的文字查找,并附上找到处周围的一段
PUT/entries/:id/text{ version, text }:页面读取的文件文字,用于搜索
PUT/entries/:id/placeholder{ version, placeholder }:图片加载前模糊显示的小图
POST/duplicates{ hashes }:在可读范围内,已有相同字节的文件
GET/shared他人与请求者共享的内容
GET/shared/new自上次查看以来新增的数量
POST/shared/seen已查看:不再有新的
POST/entries/:id/shares{ with, role, days }:共享或更改角色;共享指定天数,null 为永久,不指定则保持原样
DELETE/entries/:id/shares/:with不再与其共享
POST/entries/:id/links{ days, password, once }:无需登录即可读取的链接及其地址
GET/entries/:id/commentswhat is said of it, each thread with its replies under it
POST/entries/:id/comments{ text, replyTo }: a comment, or a reply; those it names with @ told (onComment)
PATCH/entries/:id/comments/:c{ text } by its author, or { resolved: true | false }
DELETE/entries/:id/comments/:cby its author, or by who may share the entry
PUT/entries/:id/hold{ reason }: on hold, for who may 'configure': not to be trashed or deleted
DELETE/entries/:id/holdreleased
GET/notifications请求者收到的通知(与其或其所在组共享、在评论中被提到),最新的在前,以及新通知数量
POST/notifications/seen已查看:不再有新通知
GET/admin/usage供有配置权限的人使用:每个人保存的内容(文件、文件夹、字节)和整个网盘
GET/admin/activity?limit=供有配置权限的人使用:网盘中任何位置的操作,最新的在前
GET/export?user=…everything of a person (oneself, or anyone for who may 'configure'), for a .zip
GET/events实时的更改(server-sent events):每次更改中自己可见的文件夹和条目
链接

两者都不询问:链接本身就是权限。带密码的链接会在每次请求时要求提供密码。

路由作用
POST/links/:token/uploads{ name, folder, type, size },以及 /finish、/abort:通过可接收文件的链接({ uploads })上传文件
PUT/entries/:id/review{ status: 'accepted' | 'rejected' | null, reason }:审阅通过文件收集收到的文件
GET/received通过提问者的文件收集收到的内容,最新的在前
GET/requests提问者的文件收集:每个文件夹、其链接、令牌和已收到的内容
GET/admin/requests供有配置权限的人使用:每个文件收集、发送给了谁以及还缺什么
POST/entries/:id/links/:link/remind立即提醒请求的收件人还缺什么(需配置 `reminders`)
GET/expiring?days=自己可读、字段 expires 表明在若干天内失效的文件