之前进度
表字段设计如下:
const columns = [
{
title: '名称',
key: 'name',
dataIndex: 'name',
},
{
title: '类型',
key: 'category',
dataIndex: 'category',
},
{
title: '作者',
key: 'author',
dataIndex: 'author',
},
{
title: '路径',
key: 'path',
dataIndex: 'path',
},
{
title: '最近访问时间',
key: 'latest_view_time',
dataIndex: 'latest_view_time',
},
{
title: '大小',
key: 'size',
dataIndex: 'size',
},
{
title: '操作',
key: 'action',
},
];
创建数据库
drop database if exists onlyoffice;
create database onlyoffice character set utf8mb4;
关于文档大小字段类型的讨论
如图:
MySQL中int类型的最大值是2147483647,经过计算,可以存储2048M的文件大小。
所以也就是能够存储2G的大小,对于文档类型的文件来说,超过2G是不被允许的,也不太可能,所以int类型够用了。
创建表格
import env
import mcrud
env.load("../.env")
db = mcrud.new_env()
columns = [
"name varchar(255)",
"category varchar(255)",
"author_id varchar(255)",
"author varchar(255)",
"path varchar(255)",
"latest_view_time datetime",
"size int",
]
db.add_table("file", columns)
onllyoffice支持的文档类型
word - 文本文档 (.doc、.docm、.docx、.docxf、.dot、.dotm、.dotx、.epub、.fb2、.fodt、.htm、.html、.mht、.mhtml、.odt、.ott、.rtf、.stw、.sxw、.txt、.wps、.wpt、.xml),
电子表格 (.csv、.et、.ett、.fods、.ods、.ots、.sxc、.xls、.xlsb、.xlsm、.xlsx、.xlt、.xltm、.xltx、.xml),
演示文稿 (.dps、.dpt、.fodp、.odp、.otp、.pot、.potm、.potx、.pps、.ppsm、.ppsx、.ppt、.pptm、.pptx、.sxi),
便携式文档格式 (.djvu、.docxf、.oform、.oxps、.pdf、.xps)。
构造点假数据
import env
import mcrud
import rand
import snowflake
import random
env.load("../.env")
db = mcrud.new_env()
columns = [
"id",
"name",
"category",
"author_id",
"author",
"path",
"latest_view_time",
"size",
]
values = []
suffixs = {
".docx": "word",
".xlsx": "excel",
".ppt": "ppt",
}
for i in range(100):
suffix = random.choice(list(suffixs.keys()))
category = suffixs.get(suffix)
filename = rand.str.str(6) + suffix
view_time = (f"{rand.num.int(2022, 2024)}-"
f"{rand.num.int(1, 12):02d}-"
f"{rand.num.int(1, 28):02d} "
f"{rand.num.int(0, 23):02d}:"
f"{rand.num.int(0, 59):02d}:"
f"{rand.num.int(0, 59):02d}")
values.append([
snowflake.idstr(),
filename,
category,
snowflake.idstr(),
rand.user.name(),
f"{rand.str.str(6)}/{rand.str.str(6)}/{filename}",
view_time,
rand.num.int(100, 100000),
])
db.add_many("file", columns, values)
后续计划
- 1、最近文档表格完善
- 2、实现登录功能
- 3、新建文件,复制文件,删除文件
- 4、其他