![](https://img.shields.io/badge/author-digua-blue)
![](https://img.shields.io/github/license/zkdfbb/kk)
![](https://img.shields.io/pypi/v/kk)
![](https://img.shields.io/pypi/pyversions/kk)

### 1. 主要功能

1. 支持用作简单文件列表，无需数据库，无用户管理，分享等功能
2. 支持基本网盘功能，需要安装MongoDB及Redis，支持用户注册
3. 用户可设置自己的目录是否完全公开，公开时所有人都可访问，但无法修改文件
4. 公共目录内的文件只有管理员可管理，所有人都可公开访问，但无法修改文件
5. 预览功能，支持常见代码文件预览，且支持代码高亮，支持`.jpg` `.txt` `.pdf` `.md`, `.html` 等文件格式预览，支持`.zip` `.tar.gz` `.tar.bz2`等压缩格式预览，在可外网访问的环境下，支持`.docx` `.xlsx` `.pptx`等Office文件预览
6. 播放功能，支持`.mp4` `.flv` `.m3u8` 等视频格式播放，支持`.mp3` `.wav` `.ogg` 等音频格式播放
7. 文件下载，支持文件夹压缩下载
8. 支持实时预览，可切换文件列表模式及预览模式（直接打开图片，播放音乐）
9. 支持列表及图标布局，图标布局模式下采用瀑布流加载
10. 支持文件搜索，只搜索当前目录及子目录下的文件
11. 大文件流式上传可使用如下命令：

```bash
curl -X PUT -T backup.tar.gz http://127.0.0.1:8000/disk/backup.tar.gz
```

### 安装部署

确保您的`Python`版本>=3.6，一键安装方式如下
```bash
pip install kk    # 安装
kk                # 运行
```

若采用网盘模式启动，需先安装`MongoDB`及`Redis`，推荐使用`docker`进行安装，同时设置必要的环境变量

设置`MongoDB`环境变量`MONGO_URI`

```bash
export MONGO_URI=mongodb://admin:123456@localhost:27017/admin
```

设置`Redis`环境变量`REDIS_URI`

```bash
export REDIS_URI=redis://:123456@localhost:6379
```

要发送邮件，需先设置邮件服务器相关的环境变量

```bash
export EMAIL_SENDER=
export EMAIL_SMTP=
export EMAIL_USER=
export EMAIL_PWD=
```

然后再以网盘模式启动

```bash
kk --auth=true
```

本源码使用的默认数据库名为`kk`，第一个注册的用户即为管理员，建议对如下字段建立索引
```
db.users.ensureIndex({id: 1}, {unique: 1})
db.users.ensureIndex({username: 1}, {unique: 1})
db.users.ensureIndex({email: 1}, {unique: 1})
```

其他可选参数
```
--auth=true             # 以网盘模式启动
--root=.                # 设置根目录，默认为当前文件夹
--db=kk                 # 设置数据库名称，默认为kk
--name=FileServer       # 设置网站名称
```
