文件库FRS存储格式
FRS是系统后台文件存储规范,本文定义了详细的存储格式。
目录
frs是润普公司制定一个开放的文件存储系统规范,支持元数据、版本、回收站、缓存等功能,并提供开源的python访问操作库。
1 配置文件说明
文件库配置文件 frs.conf 用于文件库的虚拟文件系统同实际文件库系统的路径映射,存放在实例自身的当前目录。默认的配置文件,已经可满足大多数的应用需求。
文件格式为windows标准ini文件格式,包括cache、root、site三节。
1.1 [cache]: 对缓存区的设置
cache节设置文件库缓存区根路径的存放路径:
[cache] path=%(APP_HOME)s/var/frs-cache
缓存内容通常是现有内容转换生成的。 比如上传图片会自动生成不同大小的缩略图,这些缩略图就是保存在缓存区的。
缓存内容对存储介质的可靠性要求不高,也不必对缓存文件进行备份。
1.2 [root]:路径映射
root节定义了文件库和文件系统之间的路径映射关系。root节典型如下:
[root] /audio= /var/frs/audio /video= /var/frs/vidio /members= /var/frs/members
上述定义了三个根点在文件系统中的路径,每行的含义是:
文件库根结点 = 文件系统的路径
上述配置,可以建立一个抽象于具体文件系统位置的一个虚拟文件系统(VFS = Virtual File System)。
1.3 [site]保留项
暂时无用。
2 存储目录结构概览
文件库的每个实体(包括文件和目录),都包含文件自身和元数据两个文件,存放的位置为:
sample -> 主文件
.frs/ -> 文件库的附加特殊文件夹
metadata.json -> 文件组成信息
典型的文件夹结构:
|-- everydo-frs #frs根目录
| `-- ..
| f1.txt # 文件库的文件
| d1/ # 文件库的文件夹
| .frs/ # 文件库的附件特殊文件夹(隐藏)
| f1.txt/
| metadata.json # 元数据
| archived/ # 存档文件
| 1 # 版本号
| 2
| ....
| .frsremoved/ # 删除的文件(回收站)
| 2005-10-09-10-23-21/ # 某次删除的文件
| f3.txt # 删除的f2
| f4.txt
| d2.txt
| .frs/ # 文件的附件文件
| ....
| 2005-10-09-12-32-02/ # 某次删除的文件
| f5.txt
| .frs/
| ....
|
|
`-- everydo-frscache #frs缓存根目录
`-- ..
|-- agent.txt
| `-- .frs.mime_text_html #缓存文件夹
| `-- transformindex.html
|-- hello.rst
| `-- .frs.mime_text_pdf #缓存文件夹
| `-- transformindex.pdf
3 元数据的存放
元数据以json格式存放在metadata.json这个文件中.
典型的元数据格式:
{
"main": {
"id": 1231243112,
"contenttype": "File",
"mimetype": "application/pdf",
"stati": [
"visible.default",
"modify.default"
]
},
"dublin": {
"description": "收集知识管理相关的资料、电子书籍等",
"language": "zh",
"created": "2003-08-20 15:05:27",
"effective": "2006/12/30 18:35:55.479 GMT+8",
"title": "资料库",
"modified": "2006-12-30 10:35:55",
"subjects": [
"知识管理理念",
"知识管理系统",
"其他"
],
"creators": [
"users.panjy"
]
}
}
3.1 主数据
main里面存放的是主数据。
- contenttype
-
用来指定类型,取值包括如下几种:
- Folder: 文件夹
- File: 文件
- Image: 图片
- Document: 文档
- mimetype
- 文件的mime类型,如纯文本文件是text/plain,html是text/html
- stati
-
是文件的状态, 可如下取值
- 保密性状态
- visible.default(非保密)
- visible.private(保密)
- 发布状态
- modify.default(普通)
- modify.archived(已发布)
- 保密性状态
- id
- 文件的内部id,这是一个整数,全文件库唯一,用于搜索. 导入系统的时候, 在系统内部自动更新.
- keys
- 对于排序文件夹,这里是文件夹内容的文件名
- hidden_keys
- 文件夹中, 在导航栏目上不需要显示的条目
3.2 dublin
这里存放的是国际标准都柏林核心集:
- creators 创建者
- title 标题
- subjects 分类
- description 描述
- created 创建时间
- modified 修改时间
- effective 生效时间
- expires 失效时间
- publisher 发布者
- contributors 贡献者
- identifier 标识
- language 语言
- rights 版权
4 版本的存放
存放位置:
f1.txt # 文件库的文件
d1/ # 文件库的文件夹
.frs/ # 文件库的附件特殊文件夹(隐藏)
f1.txt/
archived/ # 存档文件
1 #版本号
.
.
100 #版本号
...
5 缓存文件的存放
存放位置:
`-- everydo-frscache #frs缓存根目录
`-- ..
|-- agent.txt
| `-- .frs.mime_text_html #缓存文件夹
| `-- transformindex.html
|-- hello.rst
| `-- .frs.mime_text_pdf #缓存文件夹
| `-- transformindex.pdf
6 删除文件的位置
存放位置:
f1.txt # 文件库的文件
d1/ # 文件库的文件夹
.frs/ # 文件库的附件特殊文件夹(隐藏)
....
.frsremoved/ # 删除的文件(回收站)
2005-10-09-10-23-21/ # 某次删除的文件
f3.txt # 删除的f2
f4.txt
d2.txt
.frs/ # 文件的附件文件
....
2005-10-09-12-32-02/ # 某次删除的文件
7 开发包
- python开发包: http://code.google.com/p/zopen-frs
- web浏览工具: http://code.google.com/p/zopen-cms

《易度文档管理产品简介》(pdf)
下载试用