WARNING
应用访问用户存储空间中的文件夹或文件前,需要先获得授权。由于应用服务通常以独立的应用用户运行,不是以当前登录用户运行,系统需要把对应路径的 ACL 权限授予这个应用用户后,应用才能实际访问目标路径。
没有接入授权接口时,应用通常只能引导用户进入应用设置,再由用户手动添加授权目录。接入后,应用可以在自己的页面里直接打开文件夹选择框或文件选择框,让用户完成选择和确认,并直接拿到本次授权结果。
mermaid
flowchart LR
A("应用需要访问文件夹或文件")
B("引导用户进入应用设置手动授权")
C("调用 JSSDK 弹出文件选择器")
D("用户选择并提交")
E("系统写入应用用户 ACL")
F("返回授权路径")
A --> B
A --> C --> D --> E --> F:::note
选择器调用会直接返回本次授权结果。后端查询授权结果主要用于页面刷新、服务重启后重新同步授权状态,或在后端业务中读取当前应用已有的授权路径。
:::
WARNING
拿到授权路径和应用用户 ACL 权限,不代表可以绕过当前使用用户的系统权限。应用仍然需要按当前用户的文件权限决定是否展示、读取、写入或删除内容。
前端 JS SDK 和后端 API 的通用请求方式见 调用方式。
选择授权方式
按应用的使用方式选择授权入口:
mermaid
flowchart TD
A("应用需要访问授权路径")
B{"是否需要按使用用户区分内容"}
C("管理员配置固定目录")
D("应用共享授权路径")
E("当前用户选择目录或文件")
F("用户个人授权路径")
A --> B
B -- 不需要 --> C --> D
B -- 需要 --> E --> F前端 JS SDK 用于打开选择或授权界面。后端 API 用于查询授权结果、删除授权路径,以及检查文件权限。
相关文件能力
拿到授权路径后,常见还会用到两类文件能力:
mermaid
flowchart LR
A("已获得授权路径")
B("准备返回文件列表")
C("检查当前用户文件权限")
D("决定是否展示、读取、写入或删除")
E("准备在页面展示路径")
F("转换内部路径")
G("展示用户能理解的路径")
A --> B --> C --> D
A --> E --> F --> G本页要点
- 应用服务以独立应用用户运行,访问用户文件前需要系统授予应用用户 ACL。
- 选择器调用会直接返回本次授权结果。
- 后端查询授权结果主要用于刷新、服务重启后同步,或后端业务读取已有授权路径。
- 拿到授权路径不代表绕过当前使用用户的系统权限,返回内容前仍建议检查用户权限。