Skip to content

shinoairisu/CLANAS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

CLANAS

关于

CLANAS 是一个面向家族的轻量级NAS系统。读作克拉娜丝。

主要是提供一个多硬盘自动管理系统。

CLANAS是以群组模式提供功能的,类似于SLACK。

这些群组通常以家庭为单位。

但是因为是面向家庭的轻量级,因此不提供网络攻击防护。如果家庭中有人刻意攻击请自行解决。

家庭成员 家庭 家族

张三是一个家族的成员,

功能

  • 家庭群组。一个人可以属于多个群。主要是方便文件分享以及简单聊天。
  • 虚拟文件夹。硬盘文件将与NAS中的文件夹分离,互相无关。
  • 文件批量上传下载。局域网快速上传文件。
  • 文件群组共享,连接共享。
  • CLAN媒体设计器。用于新建自己的CLAN媒体。并且可以分享给别人。
  • CLAN影院 通过分享movlist或者包含list的链接可以分享CLAN影院
  • CLAN音乐 通过分享muslist可以分享CLAN音乐
  • CLAN图片 同上
  • 数据库自动备份
  • 重要文件自动备份(冗余存储)
  • 重复文件搜索 可以查找硬盘上相同的文件
  • 近似照片、模糊照片、照片打分等其他功能

数据库

默认使用SQLite

申请队列

所有人注册NAS需要由管理员同意。

id 人员名 身份 头像 年龄 邮箱 账号 密码 可用磁盘空间 身份级别

人员表

使用NAS的所有人。身份可以是管理员,或者是使用者。管理员可以进入控制面板。身份级别分为 1-5 级。5级为最高,可以保存或者观看所有文件。

id 人员名 身份 头像 年龄 邮箱 账号 密码 可用磁盘空间 身份级别创建时间戳 修改时间戳

群组

一般一个家庭可以是一个群。就像微信一样。

id 群组名 人员id 群昵称 身份(成员/管理员) 创建时间戳 修改时间戳

群组信息队列

群组中发送消息的服务器存档。最多保留30天。

id 群组id 发送者id 信息内容(超文本) 创建时间戳

群组临时文件

比如群里发的视频,音乐,图片等文件,可以在 群文件 中直接得到。有临时存储位置,超过30天自动删除。

文件id是在文件表中的id,文件名是在本群中的命名。

id 文件id 文件名 创建时间戳

文件表

md5是一个分块哈希算法。可以一片一片计算文件哈希,最后给出文件整体哈希值。利用md5可以减少磁盘占用量,将文件上传变为文件引用数量增加。

文件表使用uuid存储文件。用户难以知道文件对应uuid,所以无法直接通过uuid访问文件。

管理所有文件。每个文件都有一个引用指针,等数量归零时会直接删除磁盘文件。

文件重要度分为 1- 5 级别。默认为1,也就是存一份。2是同硬盘存两份。3是不同硬盘存两份。4是不同硬盘存三份。5是不同硬盘存四份。一般启用2或者3就足够了。而且不推荐将h片作为重要文件存储。

文件冗余默认是0。这个就是基于重要度算法实现的。如果有冗余,将保存冗余id。比如 "11361,14564,10012"。指的是这三个id的文件是本文件的冗余备份。

id 文件原始名 文件原始类型 文件磁盘路径 文件引用数量 文件冗余 md5 时间戳

磁盘表

存储了被NAS管理的所有磁盘

磁盘可以支持热插拔。从NAS卸载后,还需要从系统卸载。从NAS卸载后,硬盘依旧会保留,但是激活状态会变成False。

负载均衡算法是根据磁盘io以及磁盘剩余容量一起计算的,用户可以选择配比来修改负载均衡。默认权重是3:1。即优先看磁盘io,然后看容量。

id 磁盘名 磁盘路径 是否激活 创建时间 修改时间

虚拟目录

按路径存储了所有用户的网盘目录。文件名可空,如果有文件名则代表文件,没有则是目录。

id 用户id 树状地址 文件名 文件id 创建时间

回收站虚拟目录

按路径存储了所有用户的网盘目录。文件名可空,如果有文件名则代表文件,没有则是目录。被删除的文件会在这里保存30天。

id 用户id 树状地址 文件名 文件id 创建时间

特殊文件表

用于存放movlist等独立的特殊文件,以及插件用的特殊文件。这个文件不会被虚拟目录读取,但是也会占用磁盘体积,请注意。

id 所有者id 文件名 文件id 真实文件地址 文件类型 创建时间戳 修改时间戳

弹幕/评论系统

给视频、音乐、照片使用的弹幕系统。模式:弹幕/评论。

id 文件id 内容(超文本) 模式 播放时间 创建时间 修改时间

文件分享

id 用户id 文件链接

文件访问

在网盘模式下,只有网盘有的文件才可以访问下载或者播放页面。没有的会得到错误页面。

媒体编辑器

媒体编辑器编辑的是播放列表。可以是视频、照片或者是音乐。

媒体编辑器使用了插件用api。

addFile(文件名,所属用户)

会自动存储到文件表和特殊文件表中。

包含了一个授权人id与授权key。key的目的是防止被低级别的人访问了不该访问的数据。比如H片被小孩查看。

在媒体中心可以导入对应的list链接。

查看方法:

在家庭影院的设置中,在 源 一栏处填写分享的movlist链接。然后点击添加。然后点击“首页”, 就可以看到影院中出现了源中出现了movlist中的所有视频。

视频编辑器包含:

{

	"name": "我的电影",
    "creatuser":"userid",
	"list":[
    	{
    	"name":"摇曳露营 第一季",
    	"cover":"封面文件id",
    	"title":["第一集","第二集","第三集","第四集"]
		"content":["id1","id2","id3","id4"] ,
		"class":"日常|百合|日本|搞笑"
		},
		{
        "name":"素晴 第一季",
    	"cover":"封面文件id",
    	"title":["第一集","第二集","第三集","第四集"]
		"content":["id1","id2","id3","id4"4] ,
		"class":"日常|日本|搞笑|动漫"
        }
	]
}

图片编辑器包含:

{

	"name": "我的相册",
    "creatuser":"userid",
	"list":[
    	{
    	"name":"日本照片",
    	"cover":"封面文件id",
    	"title":["第一张","第二张","第三张","第四张"]
		"content":["id1","id2","id3","id4"] ,
		"class":"旅游"
		}
	]
}

About

面向家庭的超轻量级NAS系统

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published