Skip to main content

什么是文件库?

文件库是一套统一的文件系统,保存 MemoryLake 能够访问的全部文件。项目文档始终通过引用文件库中已有的文件来创建。 您的顶层可写文件夹是 MY_SPACE — 可将其视为工作空间的根目录。您创建的每个文件或文件夹都放在 MY_SPACE 之下(直接放置,或嵌套在子文件夹中)。 典型的集成流程如下:
1

选择目标文件夹

使用别名 MY_SPACE 直接指向工作空间根目录,或传入您在其下创建的任意子文件夹的 item_id
2

将文件上传到文件库

分块上传:创建上传会话,逐块 PUT,然后创建文件条目
3

将文件导入项目

使用上一步返回的 item_id 调用导入文档

Base URL

条目 ID 别名

任何接受 item_id 的位置,都可以传入别名 MY_SPACE 来替代具体 ID。 MY_SPACE 始终解析为您的工作空间根目录。凡是原本需要先查询根文件夹的场景,都可以直接传入它 — 例如创建顶层文件或文件夹时的 parent_item_id
您无需先调用获取条目来查找根文件夹 — 直接使用 MY_SPACE 即可。

上传文件(端到端)

文件上传采用分块方式。每个分块对应一个预签名 PUT URL,逐块上传后,再创建一个引用该上传会话的 file 条目完成收尾。
1

创建上传会话

POST /api/v1/drives/items/upload,携带以字节为单位的 file_size。返回一个 upload_idpart_items 列表 — 每个分块一个预签名 URL。
2

上传每个分块

将每个分块的字节 PUT 到对应的 upload_url。保存每次响应的 ETag 头 — 全部都需要用到。
3

创建文件条目

POST /api/v1/drives/items,携带 item_type: "file"from: { upload_id, part_etags }。返回新的 item_id

Python 示例

名称冲突

创建文件或文件夹时,在请求中指定冲突处理策略:
overwritereplace 并非同义。overwrite 保留原有的 item_idreplace 会签发一个新的。两者都不会重新处理此前已从该文件导入的项目文档 — 如需索引新内容,请重新调用导入文档

接口列表

获取条目

item_id 查询文件或文件夹。

列出条目

分页浏览文件夹内容。

创建上传会话

开启分块上传会话并获取预签名 URL。

创建条目

创建文件夹,或将上传收尾为文件条目。

删除条目

删除文件或文件夹(文件夹为递归删除)。