Filesystem

目录和嵌入式文件系统访问。

Entry 类型

Kind 描述
fs.directory 基于目录的文件系统
fs.embed 只读嵌入式文件系统

目录文件系统

- name: uploads
  kind: fs.directory
  directory: "/var/data/uploads"
  auto_init: true
  mode: "0755"
字段 类型 默认值 描述
directory string required 根路径
auto_init bool false 目录不存在时自动创建
mode string 0755 Unix 权限模式(八进制)
base string - 相对路径的基准:project(进程工作目录)或 module(所属模块的加载根目录)

绝对路径按原样使用,无论 base 如何设置。

对于相对路径,base: project 使其相对于进程工作目录。base: module 和未设置 base 都会通过条目的注册表所有者查找所属模块,并相对于该模块的加载根目录解析路径。当条目没有所属模块,或该模块没有可解析的资源根目录时,路径仍相对于进程工作目录。

其他任何取值都会以 invalid directory base 拒绝。

mode 限制所有文件操作。当所有读取位都已设置且未设置任何执行位时,执行位会自动添加。

路径会被规范化和验证。无法访问配置的根目录之外的文件。

嵌入式文件系统

- name: static
  kind: fs.embed

嵌入式文件系统使用 entry ID 从 pack 资源加载。它们是只读的。

嵌入式文件系统是内部机制。通常不需要手动配置。

操作

两种文件系统类型都实现:

操作 目录 嵌入式
Open/Read 是 是
Stat 是 是
ReadDir 是 是
OpenFile (write) 是 否
Remove 是 否
Mkdir 是 否
Rename 是 否

对嵌入式文件系统的写操作会返回错误。

Lua API

参见 Filesystem 模块 了解文件操作。

另请参阅