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 模块 了解文件操作。
另请参阅
- Filesystem 模块 - Lua API 参考
- Cloud Storage - 兼容 S3 的对象存储
- Template - 从文件系统加载的模板