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

参考 客户端 API

客户端 API

网盘和 hooks 所基于的客户端;createMemoryClient 在页面中以相同方式应答。服务器的拒绝会以 RequestError 抛出,带有 status 和 code:name-taken、in-trash、over-quota、forbidden……
开始

创建客户端

import { createDriveClient } from '@rebofiles/drive'; // or @rebofiles/react

const client = createDriveClient({
  base: '/api/files',
  headers: async () => ({ authorization: `Bearer ${await token()}` }),
  parallel: 3,                          // parts at once, of each file
  retry: { attempts: 5, delay: 1000 },  // a part that fails, again
});

const { entries } = await client.list(null);
const file = await client.upload(input.files[0], { parent: entries[0].id, onProgress: ({ sent, size }) => draw(sent / size) });
方法

读取

方法What it does
list(folder)某个文件夹中的内容(传入 null 表示根目录),以及到达它的路径。
entry(id)一个条目、它的位置,以及它是否在回收站中。
recent()最近修改的文件。
trash()自己回收站中的内容。
shared()其他人与请求者共享的内容。
sharedNew()自上次查看以来,其中有多少是新的。
searchText(query)按文件中的文字,每个结果附带一段原文。
activity(id, limit?)谁对某个条目及文件夹内的内容做了什么;最新的在前。
usage()自己保存的字节数,以及可以保存多少。
starred()请求者加星标的内容,最近加星标的排在前面。
withField(name, value)字段为某个值且可读取的内容:某个客户、某个案件的文件。
方法

修改

方法What it does
createFolder(name, parent)创建文件夹;名称已被占用时加上 “(2)”。
rename(id, name, 'keep-both'?)目标位置已有同名项时会被拒绝,除非选择两者都保留。
move(id, parent, 'keep-both'?)移到另一个文件夹,或移到根目录。
setColor(id, color | null)把文件夹设为网盘的九种颜色之一,或恢复默认颜色。
copy(id, parent?)复制文件,内容在存储中直接复制:放在原文件旁边;无权放置时放在自己的顶层。
setFields(id, { name: value | null })设置条目上应用的字段,每个对应一段文字,设为 null 则删除。
star(id, starred?)由请求者加星标,传 false 则取消:仅自己可见。
moveToTrash(id)连同其中的内容一起移到回收站。
restore(id)从回收站恢复到原来的位置。
deleteForever(id)永久删除,文件内容也一并删除。
emptyTrash()清空自己的整个回收站。
restoreVersion(id, version)把旧版本恢复为新版本,无需重新上传文件内容。
方法

上传

方法What it does
upload(file, { parent, file, onProgress, signal, images, text, sha256 })分片上传文件,中断后可续传;file 用于上传新版本;缩小的图片、占位图和文字随后发送。
duplicates(hashes)在自己可读的文件中,已有这些内容的文件。
方法

共享

方法What it does
share(id, who, role, days?)与某人或所有已登录用户(*)共享,角色为查看者、评论者或编辑者。
unshare(id, who)停止共享;任何人都可以退出别人与他共享的内容。
people(query)与输入内容匹配的人员和群组,由应用查找(服务器的 people)。
names(ids)这些 id(人员及 group:)各自的名称;未知的省略。
linkToken(id, link)之前创建的链接的令牌:每次都相同。
方法

文件收集

方法What it does
received()通过自己的文件收集收到的内容,最新的在前。
requests()自己的文件收集:每个文件夹、其链接、令牌和已收到的内容。
remind(id, link)立即提醒请求的收件人还缺什么,需服务器配置 reminders。
expiring(days?)自己可读、字段 expires 在若干天内(15)到期或已过期的文件,最近的在前。
review(id, status, reason?)接受收到的文件,或附原因退回(发送者的页面会显示);用 null 取消审阅。
方法

文件

方法What it does
url(id, { version, inline, size })读取文件的地址:用于下载,或按某个尺寸显示。
urls(ids, { inline, size })一次获取多个文件的地址,每个都带有效期。
pack(ids)若干条目的压缩包内容清单,供 downloadZip 使用。
方法

设置

方法What it does
settings()网盘的设置、自己的设置,以及自己是否可以修改网盘的设置。
saveSettings(settings)保存网盘的设置,供有权配置的人使用。
saveMySettings(mine)保存自己的语言和主题。
方法

实时

方法What it does
watch(onChange, { onState })实时获知任何人所做的更改:每次更改中自己可见的文件夹和条目。断开后会自动重连。返回用于停止的函数。
方法

评论

方法What it does
comments(id)某个条目的评论,每个讨论串及其回复。
addComment(id, text, replyTo?)发表评论,或回复另一条评论;会通知用 @ 提到的人。
editComment(id, comment, text)修改自己的评论内容。
resolveComment(id, comment, resolved?)将讨论串标记为已解决,或重新打开。
removeComment(id, comment)撤回评论及其回复:限作者或所有者。
方法

保留

方法What it does
hold(id, reason?)法律保留:在解除之前,它及其中的内容不能移入回收站或删除。限有配置权限的人。
release(id)解除保留。
exportPerson(user?)某人的全部数据,用于 .zip:其拥有的内容、评论和操作记录。
方法

通知

方法What it does
notifications()请求者收到的通知(与其或其所在组共享、在评论中被提到),最新的在前,以及新通知数量。
sawNotifications()已查看:不再有新通知。
方法

管理

方法What it does
adminUsage()供有配置权限的人使用:每个人和整个网盘的文件、文件夹和字节数。
adminRequests()供有配置权限的人使用:每个仍开放的文件收集、发送给了谁以及还缺什么,以便提醒。
adminActivity(limit?)供有配置权限的人使用:网盘中任何位置的操作,最新的在前。