828华为云征文|部署个人文档管理系统 Docspell
828华为云征文|部署个人文档管理系统 Docspell
- 一、Flexus云服务器X实例介绍
- 二、Flexus云服务器X实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 2.4 Docker 环境搭建
- 三、Flexus云服务器X实例部署 Docspell
- 3.1 Docspell 介绍
- 3.2 Docspell 部署
- 3.3 Docspell 使用
- 四、总结
一、Flexus云服务器X实例介绍
云服务器是现代科技的杰作。它以强大的计算能力和高可靠性,为各类业务提供坚实支撑。可远程管理,轻松实现资源调配。具有高度的灵活性和扩展性,适应不同规模需求。安全防护严密,让你的数据放心存储。选择云服务器,开启高效便捷的云端之旅。
华为云下一代云服务器Flexus X实例
焕新上线,新产品基于用户业务负载动态和内存峰值画像,动态推荐规格,减少算力浪费,提升资源利用率,按照算力规格变化,精准计算用量,按需灵活计费,搭配智能推介,始终确保成本更优,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:4核12G-100G-3M规格
的Flexus X实例基础模式
二、Flexus云服务器X实例配置
2.1 重置密码
购买服务器的时候可以提前设置用户名和密码,因为我这里跳过了,所以购买完成后需要重置密码,会短信或站内消息通过你的云服务器信息,重点是公网IP地址
和用户名,首先打开你的服务器控制台,选择重置密码
勾选自动重启,点击确定即可
2.2 服务器连接
华为云服务器提供了多种链接方式,如使用控制台提供的VNC方式登录、使用Linux/Mac OS系统主机登录Linux弹性云服务器(即ssh root@192.168.48.78
命令)或者使用Putty、Xshell等工具登录Linux弹性云服务器。
我个人习惯使用 MobaXterm
这款软件,添加SSH连接,输出公网IP
、用户名和端口(默认22),连接即可。
2.3 安全组配置
安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略
。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组
。
主要需要填写优先级
(默认填1即可)、协议端口
(协议一般为TCP
或UDP
,端口一般选择你项目需要暴露的端口即可),描述
(选填,一般会填写此端口的用途以免忘记了),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。
如果还不清楚可以参考文档:安全组配置示例
2.4 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
Flexus云服务器X实例 | Ubuntu | 192.168.0.168 | 27.2.0 | Ubuntu 22.04.4 LTS |
使用apt-get
命令安装docker及其配置
# 安装必要工具包
$ sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common# 添加Docker GPG秘钥
$ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -# 配置仓库源
$ sudo add-apt-repository \"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \$(lsb_release -cs) \stable" # 更新apt包索引
$ sudo apt-get update# 安装docker
$ sudo apt-get install docker-ce docker-ce-cli containerd.io# 添加docker镜像源
$ sudo vim /etc/docker/daemon.json{"registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn","https://ccr.ccs.tencentyun.com/","https://docker.m.daocloud.io/","https://dockerproxy.com",]
}
# 重启
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
测试docker
安装是否成功
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```
检查docker
服务状态
root@flexusx-c6b3:~# systemctl status docker
* docker.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h ago
TriggeredBy: * docker.socketDocs: https://docs.docker.comMain PID: 24912 (dockerd)Tasks: 13Memory: 24.7MCPU: 3.778sCGroup: /system.slice/docker.service`-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查docker compose
版本
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2
三、Flexus云服务器X实例部署 Docspell
3.1 Docspell 介绍
Docspell 是一款个人文档管理器。有时也被称为“文档管理系统
”(DMS
)。您需要一台扫描仪将文件转换为文件,然后 Docspell 可以帮助您整理由此产生的杂乱,它可以将您从扫描仪、电子邮件和其他来源获取的文件统一起来。Docspell可以关联标签、设置对应项以及许多其他预定义和自定义元数据。还可以对文档运行 OCR
(如果需要),提供全文搜索
,并且具有出色的电子邮件集成功能。
-
使用 OCR 提取文本
从所有文件中提取文本。对于扫描的文档/图像,使用 Tesseract 进行 OCR。文本经过分析,可用于全文搜索。 -
文本分析
使用 ML 算法分析提取的文本,以找到可以自动注释到文档的属性。 -
支持多种文件
Docspell 可以读取多种文件类型。可以提取 ZIP 和 EML(电子邮件文件格式)文件并导入其内容。 -
转换为 PDF
所有文件都转换为 PDF。不必担心原件。原始文件也会被存储,并且可以原封不动地下载。从图像数据(通常由扫描仪返回)创建 PDF 时,生成的 PDF 包含提取的文本并且可以搜索。 -
全文搜索
所有文件的提取文本和一些属性(如名称和注释)都可用于全文搜索。全文搜索还可用于进一步限制搜索菜单的结果,您可以按标签、通讯员等进行搜索。
Docspell定位于一款简单的文档整理工具,其目标是帮助用户以最小的精力轻松管理手头的电子文档。用户可将来自多种来源的文档,如扫描件和电子邮件,上传到Docspell,系统将自主地对其进行解析和管理。Docspell的设计初衷便是通过自动化技术减少人工干预,优化归档和检索流程,尤其适合那些处理大量文档的用户群体。
- 官网:https://docspell.org/
- Github:https://github.com/eikek/docspell
3.2 Docspell 部署
- 创建 docker-compose.yml
version: '3.5'
services:# The restserver and joex containers defined here are configured# using env variables. Both must connect to the same database and# solr instance. More information on configuring can be found here:# https://docspell.org/docs/configure## Please replace the values of the following with a custom secret# string:## - DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET# - DOCSPELL_SERVER_AUTH_SERVER__SECRET# - DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE# (use the same value at the consumedir container!)## After creating an account, you may want to set signup mode to# "closed" or to "invite". When using invite, you must also set# DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD to some# secret.restserver:image: docspell/restserver:latestcontainer_name: docspell-restserverrestart: unless-stoppedports:- "7880:7880"environment:- TZ=Europe/Berlin- DOCSPELL_SERVER_INTERNAL__URL=http://docspell-restserver:7880- DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET=admin123- DOCSPELL_SERVER_AUTH_SERVER__SECRET=- DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD=dbpass- DOCSPELL_SERVER_BACKEND_JDBC_URL=jdbc:postgresql://db:5432/dbname- DOCSPELL_SERVER_BACKEND_JDBC_USER=dbuser- DOCSPELL_SERVER_BIND_ADDRESS=0.0.0.0- DOCSPELL_SERVER_FULL__TEXT__SEARCH_ENABLED=true- DOCSPELL_SERVER_FULL__TEXT__SEARCH_SOLR_URL=http://docspell-solr:8983/solr/docspell- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_ENABLED=true- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_ENABLED=true- DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE=integration-password123- DOCSPELL_SERVER_BACKEND_SIGNUP_MODE=open- DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD=- DOCSPELL_SERVER_BACKEND_ADDONS_ENABLED=falsedepends_on:- solr- dbjoex:image: docspell/joex:latestcontainer_name: docspell-joex## For more memory add corresponding arguments, like below. Also see## https://docspell.org/docs/configure/#jvm-options# command:# - -J-Xmx3Grestart: unless-stoppedenvironment:- TZ=Europe/Berlin- DOCSPELL_JOEX_APP__ID=joex1- DOCSPELL_JOEX_PERIODIC__SCHEDULER_NAME=joex1- DOCSPELL_JOEX_SCHEDULER_NAME=joex1- DOCSPELL_JOEX_BASE__URL=http://docspell-joex:7878- DOCSPELL_JOEX_BIND_ADDRESS=0.0.0.0- DOCSPELL_JOEX_FULL__TEXT__SEARCH_ENABLED=true- DOCSPELL_JOEX_FULL__TEXT__SEARCH_SOLR_URL=http://docspell-solr:8983/solr/docspell- DOCSPELL_JOEX_JDBC_PASSWORD=dbpass- DOCSPELL_JOEX_JDBC_URL=jdbc:postgresql://db:5432/dbname- DOCSPELL_JOEX_JDBC_USER=dbuser- DOCSPELL_JOEX_ADDONS_EXECUTOR__CONFIG_RUNNER=docker,trivial- DOCSPELL_JOEX_CONVERT_HTML__CONVERTER=weasyprintports:- "7878:7878"depends_on:- solr- db## Uncomment when using the "docker" runner with addons# volumes:# - /var/run/docker.sock:/var/run/docker.sock# - /tmp:/tmp# The consumedir container watches a directory for files to upload# to docspell restserver. This uses the `dsc` tool. For information# on the available options, see `dsc --help`.# https://github.com/docspell/dsc## The value after `Docspell-Integration` must match the secret# specified at the restserver via# DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE.## The --not-matches "**/.*" option is to exclude hidden files.consumedir:image: docspell/dsc:latestcontainer_name: docspell-consumedircommand:- dsc- "-d"- "http://docspell-restserver:7880"- "watch"- "--delete"- "-ir"- "--not-matches"- "**/.*"- "--header"- "Docspell-Integration:integration-password123"- "/opt/docs"restart: unless-stoppedvolumes:- ./docs:/opt/docsdepends_on:- restserverdb:image: postgres:17.0container_name: postgres_dbrestart: unless-stoppedvolumes:- docspell-postgres_data:/var/lib/postgresql/data/environment:- POSTGRES_USER=dbuser- POSTGRES_PASSWORD=dbpass- POSTGRES_DB=dbnamesolr:image: solr:9container_name: docspell-solrrestart: unless-stoppedvolumes:- docspell-solr_data:/var/solrcommand:- bash- -c- 'precreate-core docspell; exec solr -f -Dsolr.modules=analysis-extras'healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8983/solr/docspell/admin/ping"]interval: 1mtimeout: 10sretries: 2#start_period: 30svolumes:docspell-postgres_data:docspell-solr_data:
- ports: 映射主机的 7880 端口到容器的 7880 端口
- volumes: 将主机目录挂载到容器目录
如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d
即可自动拉取 Docspell 镜像,并创建并启动一个容器。 up
表示启动服务,-d
表示在后台执行。docker-compose down
命令用于停止和清理由 docker-compose up
启动的服务。
- 启动服务
进入项目目录,执行docker-compose up -d
启动命令,会自动拉取容器并运行
从 Dockerhub 拉取 Docspell 镜像,地址:https://hub.docker.com/r/docspell/restserver
root@flexusx-c6b3:~/docspell# docker-compose up -d
Creating network "docspell_default" with the default driver
Creating volume "docspell_docspell-solr_data" with default driver
Creating volume "docspell_docspell-postgres_data" with default driver
Pulling solr (solr:9)...
9: Pulling from library/solr
7478e0ac0f23: Pull complete
90a925ab929a: Pull complete
7d9a34308537: Pull complete
80338217a4ab: Pull complete
1a5fd5c7e184: Pull complete
5b1aa583d1ef: Pull complete
350cf53fd52a: Pull complete
b317c36e5a10: Pull complete
edf7dd409191: Pull complete
b24483e35971: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:4267344d8d37c5982894f8424e923a66e21461fc2d61602d935837d5d464182b
Status: Downloaded newer image for solr:9
Pulling db (postgres:17.0)...
17.0: Pulling from library/postgres
Digest: sha256:4ec37d2a07a0067f176fdcc9d4bb633a5724d2cc4f892c7a2046d054bb6939e5
Status: Downloaded newer image for postgres:17.0
Pulling restserver (docspell/restserver:latest)...
latest: Pulling from docspell/restserver
c6a83fedfae6: Already exists
b10665a8e334: Pull complete
4f4fb700ef54: Pull complete
0c4bd9809776: Pull complete
Digest: sha256:7184e723dcdd5241f02372748ad0aab6caca0722478abc892dc63c663e399f2d
Status: Downloaded newer image for docspell/restserver:latest
Pulling consumedir (docspell/dsc:latest)...
latest: Pulling from docspell/dsc
4abcf2066143: Already exists
4f4fb700ef54: Pull complete
d574edd180f4: Pull complete
bdf75d862256: Pull complete
Digest: sha256:9b7e0410737446b1409ce609061096a06281dcb3e03250443e96511583197865
Status: Downloaded newer image for docspell/dsc:latest
Pulling joex (docspell/joex:latest)...
latest: Pulling from docspell/joex
c6a83fedfae6: Already exists
56f69f5c011e: Pull complete
d46286f6b8c5: Pull complete
4f4fb700ef54: Pull complete
b3df55396b51: Pull complete
6e868de79f50: Pull complete
35510b35eae3: Pull complete
c3a0e85725ae: Pull complete
Digest: sha256:b21d2285e49c0869d827dcba631ff10d574c673eb8df2ebf7fc1f326d0afd581
Status: Downloaded newer image for docspell/joex:latest
Creating docspell-joex ...
Creating docspell-restserver ...
Creating docspell-joex
Creating docspell-restserver ... done
Creating docspell-consumedir ...
Creating docspell-consumedir ... done
- 配置安全组
在Flexus云服务器X实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听7880端口,所以添加安全组为TCP:7880
协议端口。
- 检查容器状态
检查 Docspell 容器状态,确保容器正常启动
root@flexusx-c6b3:~/docspell# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f4b65aae420b docspell/dsc:latest "dsc -d http://docsp…" 3 minutes ago Up 3 minutes docspell-consumedir
55a2021c9b2a docspell/restserver:latest "/opt/docspell-rests…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:7880->7880/tcp, :::7880->7880/tcp docspell-restserver
14d19ff6af95 docspell/joex:latest "/opt/joex-entrypoin…" 3 minutes ago Up 3 minutes (healthy) 0.0.0.0:7878->7878/tcp, :::7878->7878/tcp docspell-joex
ec67e91edc8e postgres:17.0 "docker-entrypoint.s…" 17 minutes ago Up 3 minutes 5432/tcp postgres_db
1f2f3fa23a36 solr:9 "docker-entrypoint.s…" 17 minutes ago Up 3 minutes (healthy) 8983/tcp docspell-solr
- 访问地址
内网:http://localhost:7880
外网:http://公网IP:7880
- 访问结果
若出现此页面,则部署 docspell server 成功。
3.3 Docspell 使用
没有帐号需要先注册,注册时,为集体和用户选择相同的名称,然后使用此名称和密码登录
输出刚刚注册的帐号和密码进行登录,确保Collection ID
和 User Login
一致
登录成功后进入首页仪表盘,左侧是功能菜单选项,包括仪表盘、项目搜索、上传文件,设置部分:Webhook、定期查询、来源、分享,管理模块:组织、人员、设备、标签和文件夹,最后还有官方文档说明的链接,右上角有用户设置设置
点击用户图标,可以查看组织资料、用户资料、主题切换、退出登录
用户资料里,有很多设置项,比如UI设置(默认不支持中文),通知设置、邮箱设置和修改密码
点击设置图标,可以查看项目搜索、管理数据、上传文件、处理队列
选择文件,出现选择文件列表,点击提交即可开启上传任务
所有文件已上传成功后有提示,并且告知现在正在处理中,稍后查看项目页面,文件最终将到达该页面,或者转到处理页面查看当前处理状态,对中文的支持不是很好都乱码了,文件名称为中文的可能需要修改为英文才好看些
查看文件处理页面
查看项目搜索页
点击文件封面,查看文件预览页
在现代企业和家庭生活中,处理和管理大量数字化文档是不可避免的。随着各类型信息越来越多地以数码化形式出现,它们带来的存储和分类问题也越来越复杂。Docspell 提供了一种能够高效管理种类繁多的数字文件的解决方案,文件的上传和整理流程就是上诉操作,目前的缺点是没有中文支持,导致乱码问题,还有更多有趣的设置和功能就需要自行探索了。
四、总结
随着Docspell的出现,数字文件管理不再是件头疼的事。它通过技术的力量简单化了复杂的问题,使个人和企业均能轻松管理自己的电子数据,让您专注于更重要的创造性任务。此次使用的Flexus X实例
配置还是很高的4核12G-100G-3M规格
的基础模式
,文件上传和元数据获取处理都很快,整理文件可修改的信息配置很多,项目整体运行稳定流畅,使用体验很好。
体验华为云服务器的卓越性能,现正值828 B2B企业节
,助力企业轻松上云!无论是初创公司还是大型企业,都能享受高效、安全的计算服务。立即注册 ,享受专属优惠,快速部署,提升业务效率。
相关文章:

828华为云征文|部署个人文档管理系统 Docspell
828华为云征文|部署个人文档管理系统 Docspell 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 Docspell3.1 Docspell 介绍3.2 Docspell 部署3.3 Docspell 使用…...

【深度学习】—激活函数、ReLU 函数、 Sigmoid 函数、Tanh 函数
【深度学习】—激活函数、ReLU 函数、 Sigmoid 函数、Tanh 函数 4.1.2 激活函数ReLU 函数参数化 ReLU Sigmoid 函数背景绘制 sigmoid 函数Sigmoid 函数的导数 Tanh 函数Tanh 函数的导数总结 4.1.2 激活函数 激活函数(activation function)用于计算加权和…...

对于基础汇编的趣味认识
汇编语言 机器指令 机器语言是机器指令的集合 机器指令展开来讲就是一台机器可以正确执行的命令 电子计算机的机器指令是一列二进制数字 (计算机将其转变为一列高低电平,使得计算机的电子器件受到驱动,进行运算 寄存器:微处理器…...
网络基础知识笔记(一)
什么是计算机网络 1.计算机网络发展的第一个阶段:(60年代) 标志性事件:ARPANET 关键技术:分组交换 计算机网络发展的第二个阶段:(70-80年代) 标志性事件:NSFNET 关键技术:TCP/IP 计算机网络发展的第三个阶段ÿ…...
fatal: urdf 中的 CRLF 将被 LF 替换
git add relaxed_ik_ros2 fatal: relaxed_ik_ros2/relaxed_ik_core/configs/urdfs/mobile_spot_arm.urdf 中的 CRLF 将被 LF 替换 这个错误信息表示 Git 在处理文件 mobile_spot_arm.urdf 时发现它使用了 CRLF(回车换行符,常见于 Windows 系统࿰…...

构建electron项目
1. 使用electron-vite构建工具 官网链接 安装构建工具 pnpm i electron-vite -g创建electron-vite项目 pnpm create quick-start/electron安装所有依赖 pnpm i其他 pnpm -D add sass scss1. 启动项目 2. 配置 package.json "dev": "electron-vite dev --…...

Stable Diffusion绘画 | 插件-Deforum:动态视频生成(中篇)
本篇文章重点讲解参数最多的 关键帧 模块。 「动画模式」选择「3D」: 下方「运动」Tab 会有一系列参数: 以下4个参数,只有「动画模式」选择「2D」才会生效,可忽略: 运动 平移 X 让镜头左右移动: 大于0&a…...

STM32中断——外部中断
目录 一、概述 二、外部中断(Extern Interrupt简称EXTI) 三、实例-对射式红外传感器 1、配置中断: 2 、完整代码 一、概述 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当…...
LeetCode78 子集
题目: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:[[…...

《python语言程序设计》2018版第8章19题几何Rectangle2D类(下)-头疼的几何和数学
希望这个下集里能有完整的代码 一、containsPoint实现 先从网上找一下Statement expected, found Py:DEDENTTAB还是空格呢??小小总结如何拆分矩形的四个点呢.我们来小小的测试一下这个函数结果出在哪里呢???修改完成variable in function should be lowercase 函数变量应该…...

【C++】入门基础介绍(上)C++的发展历史与命名空间
文章目录 1. 前言2. C发展历史2. 1 C版本更新特性一览2. 2 关于C23的一个小故事: 3. C的重要性3. 1 编程语言排行榜3. 2 C在工作领域中的应用 4. C学习建议和书籍推荐4. 1 C学习难度4. 2 学习书籍推荐 5. C的第一个程序6. 命名空间6. 1 namespace的价值6. 2 namespace的定义6. …...

dll动态库加载失败导致程序启动报错以及dll库加载失败的常见原因分析与总结
目录 1、问题说明 2、dll库的隐式加载与动态加载 2.1、dll库的隐式加载 2.2、dll库的显式加载 3、使用Process Explorer查看进程加载的dll库信息以及动态加载的dll库有没有加载成功 3.1、使用Process Explorer查看进程加载的dll库信息 3.2、使用Process Explorer查看动态…...

SAP MM学习笔记 - 豆知识10 - OMSY 初期化会计期间,ABAP调用MMPV/MMRV来批量更新会计期间(TODO)
之前用MMRV,MMPV来一次一个月来修改会计期间。 如果是老的测试机,可能是10几年前的,一次1个月,更新到当前期间,搞个100多次,手都抖。 SAP MM学习笔记 - 错误 M7053 - Posting only possible in periods 2…...

Pytorch实现RNN实验
一、实验要求 用 Pytorch 模块的 RNN 实现生成唐诗。要求给定一个字能够生成一首唐诗。 二、实验目的 理解循环神经网络(RNN)的基本原理:通过构建一个基于RNN的诗歌生成模型,学会RNN是如何处理序列数据的,以及如何在…...

四、Drf认证组件
四、Drf认证组件 4.1 快速使用 from django.shortcuts import render,HttpResponse from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.authentication import BaseAuthentication from rest_framework.exception…...
C++:静态成员
静态成员涉及到的关键字尾static 静态成员变量要在类外初始化 去掉static关键字类型类名::变量名 静态成员变量不属于任何对象 所有对象共享一份 静态成员可以不通过对象直接访问 类名::成员名 静态成员依旧受访问修饰符的约束 …...

28 Vue3之搭建公司级项目规范
可以看到保存的时候ref这行被提到了最前面的一行 要求内置库放在组件的前面称为auto fix,数组new arry改成了字面量,这就是我们配置的规范 js规范使用的是airbnb规范模块使用的是antfu 组合prettier&eslint airbnb规范: https://github…...

【pytorch】张量求导3
再接上文,补一下作者未补完的矩阵运算的坑。 首先贴一下原作者的图,将其转化为如下代码: import torch import torch.nn as nn import torch.optim as optim# 定义一个简单的两层神经网络 class TwoLayerNet(nn.Module):def __init__(self):super(TwoLayerNet, self).__in…...

Servlet——springMvc底层原理
我们也先了解一下什么的动态资源,什么是静态资源。 静态资源:无需程序运行就可以获取的资源(照片、html、css、js等) 动态资源:需要通关程序运行才可以获得的资源。 (其实动态、静态的资源都与Servlet有…...

Json 在线可视化工具,分享几个
文章目录 1.json.cn2.json4u.cn3.jsonvisual.com4.jsoncrack5.altearius.github.io6.json.wanvb.com 前序:本文是对多种 Json 在线可视化工具 的介绍、分享。Json官网 https://www.json.org/json-en.html 个人比较中意第四款: https://jsoncrack.com/ed…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...