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、其他
相关推荐
测试者家园11 分钟前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
whysqwhw14 分钟前
OkHttp深度架构缺陷分析与演进规划
android
大模型真好玩15 分钟前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
用户70937225385116 分钟前
Android14 SystemUI NotificationShadeWindowView 加载显示过程
android
UQI-LIUWJ22 分钟前
计算机组成笔记:缓存替换算法
笔记·缓存
前端付豪23 分钟前
11、打造自己的 CLI 工具:从命令行到桌面效率神器
后端·python
前端付豪23 分钟前
12、用类写出更可控、更易扩展的爬虫框架🕷
后端·python
DKPT31 分钟前
Java设计模式之结构型模式(外观模式)介绍与说明
java·开发语言·笔记·学习·设计模式
江太翁33 分钟前
Pytorch torch
人工智能·pytorch·python
木叶丸1 小时前
跨平台方案该如何选择?
android·前端·ios