Python+Vue3+onlyoffice开发私有化文档管理系统实战笔记 20240731

之前进度

表字段设计如下:

js 复制代码
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',
  },
];

创建数据库

sql 复制代码
drop database if exists onlyoffice;
create database onlyoffice character set utf8mb4;

关于文档大小字段类型的讨论

如图:

MySQL中int类型的最大值是2147483647,经过计算,可以存储2048M的文件大小。

所以也就是能够存储2G的大小,对于文档类型的文件来说,超过2G是不被允许的,也不太可能,所以int类型够用了。

创建表格

python 复制代码
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)。

构造点假数据

python 复制代码
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、其他
相关推荐
蓝创工坊Blue Foundry20 分钟前
扫描件批量转 Excel:先确认要整表还原还是字段汇总
python·pdf·ocr·excel
二十雨辰25 分钟前
[爬虫]-解析
开发语言·python
zzq779731 分钟前
Android 16 API 36 升级后 APP 加固兼容性问题解析
android·开发语言·安全·kotlin·安卓·安全架构
沐苏瑶1 小时前
计算机网络核心笔记:打通 TCP/UDP 与 HTTP/HTTPS 底层逻辑(重点上)
笔记·计算机网络·http·https
天天爱吃肉82181 小时前
AI Agent时代你的经验值多少钱?
人工智能·python·功能测试·学习·汽车
2601_961391461 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
鱼香鱼香rose1 小时前
java-2
java·开发语言·python
2501_9159184110 小时前
深入对比iOS开发中常用性能监控工具的底层原理与优缺点分析
android·ios·小程序·https·uni-app·iphone·webview
tkevinjd10 小时前
MiniCode 项目详解6:原项目控制系统的10个缺陷(已修复)
python·llm·agent
my_power52011 小时前
android中Activity生命周期函数的职责
android