参考 客户端 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() | 自上次查看以来,其中有多少是新的。 |
| search(query, { within, trashed }) | 按名称:每个词,不区分大小写,有无重音均可。 |
| 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:)各自的名称;未知的省略。 |
| createLink(id, days, { password, once, uploads, request }) | 创建一个无需登录即可阅读的链接,并返回其令牌;文件夹的链接还可以接收文件,或只接收文件;用 request 列出要收集的文件。 |
| updateLink(id, link, { days, uploads, request, closed }) | 修改链接:从今天起的天数、接收和要求的内容;关闭或重新打开。 |
| linkToken(id, link) | 之前创建的链接的令牌:每次都相同。 |
| removeLink(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?) | 供有配置权限的人使用:网盘中任何位置的操作,最新的在前。 |