- 博客(183)
- 收藏
- 关注
原创 内网穿透工具使用指南:ngrok 和 cpolar
由于国内和国外的网络环境差异,ngrok(国外最流行)和 cpolar(国内最稳定)是两个最常用的内网穿透工具。它们的作用是:给你的本地电脑(localhost)分配一个公网可以访问的网址。
2025-12-18 20:57:16
204
原创 Python开发:后端服务的异步处理
事件循环只能调度异步(可等待)的操作;如果在事件循环里运行同步阻塞代码(无论在主协程还是子协程里),都会阻塞整个事件循环 —— 因此必须把阻塞工作改为真正的异步或交给线程/进程去跑。
2025-10-27 17:02:07
506
原创 活到老学到老之URL中的 ? 和 & 是干什么用的?
1. 第一个查询参数前必须用 ?。 2. 后续参数前用 &。 3. 如果 URL 本身没有查询参数,直接加 ?。 4. 如果 URL 已经有查询参数,再加新参数就用 &。
2025-10-24 10:09:32
300
原创 活到老学到老之python异步方法中不可以使用raise HTTPException
python异步方法中不可以使用raise HTTPException(status_code=500, detail=str(e)),写法虽然语法正确、能运行,但在 异步后台任务场景(asyncio.create_task() 启动的任务) 下,直接 raise HTTPException 会有潜在问题。
2025-10-23 13:43:02
367
原创 Python开发:BackgroundTasks和asyncio.create_task()的区别
在前一篇文章中https://blog.csdn.net/zhang_jiamin/article/details/153329238?spm=1011.2415.3001.5331介绍了接口的场景设计,采用的设计方案是:后端异步任务 + 轮询进度接口,让前端立即得到“任务已开始”的响应,然后再异步处理解析任务。其中涉及到了后端异步任务,有两个常用方法:BackgroundTasks和asyncio.create_task()
2025-10-22 10:05:52
379
原创 Python开发:接口场景设计
我的开发场景是:前端选中某个文件后,点击提交,后端开始下载并解析文件,生成apks文件。涉及到两个接口,分别是getS3List和submitS3Path,已经调通了,后端可以成功收到前端的请求并进行下载和解析。遇到的的问题是:后端解析需要时间,前端在等待过程中提示:请求超时、请求失败,请稍后重试,后端解析需要一分钟左右。我的解决方案是:后端异步任务 + 轮询进度接口,让前端立即得到“任务已开始”的响应,然后再异步处理解析任务。
2025-10-21 10:07:54
216
原创 Vben-Admin + FastAPI 项目中解决 422 报错的实战经验
422 错误(Unprocessable Entity)在 FastAPI 中很典型,是请求格式或者参数名和后端接口定义不匹配。
2025-10-20 10:45:00
269
原创 前端调试必备技能:在 Vben-Admin 中优雅打印 URLSearchParams
摘要:在JavaScript中打印URLSearchParams对象时,直接访问formData.values无法正确显示参数。正确方法是调用toString()方法,如console.log(formData.toString()),这样会将参数转换为URL编码的查询字符串格式输出。本文展示了在submitS3Path方法中如何正确打印传递给后端的表单数据参数。
2025-10-17 10:44:12
182
原创 活到老学到老之Vben-Admin-Antd项目发送application/x-www-form-urlencoded格式的请求
活到老学到老之Vben-Admin-Antd项目发送application/x-www-form-urlencoded格式的请求
2025-10-16 10:40:19
223
原创 Python开发:接口response结构设计
{ data: { files: [...] }, code: 0, message: "ok" } 形式优点:(1)统一接口规范: a. code 表示业务状态(0=成功,非0=业务异常) b. message 提供错误提示或状态描述 c. data 承载业务数据(2)易于封装前端通用请求处理(axios 拦截器、全局错误处理)(3)便于扩展,例如后续增加分页信息、总条数、调试ID等
2025-10-15 10:40:00
365
原创 活到老学到老之Vben-Admin-Antd项目中requestClient封装层只返回response.data
在Vben-Admin-Antd项目中请求后端接口,使用的是requestClient方法,使用该方法发送请求后得到的响应数据是response.data,而不是完整的response。
2025-10-14 20:30:58
409
原创 活到老学到老之httpx与aiohttp的区别:FastAPI 中的最佳选择
我使用FastAPI写了两个接口,分别用到了httpx和aiohttp这两个模块,在调试的过程中发现,使用httpx模块的接口可以自动打印请求日志,但是使用aiohttp模块的接口却不能打印这样的请求日志,需要手动添加,于是引起了我的好奇,这两个模块到底有哪些区别,活到老学到老,总结一下
2025-10-13 20:40:43
708
原创 活到老学到老之Jenkins build triggers中的定时schedule规则细讲
Jenkins build triggers中的定时schedule规则细讲,在 Jenkins 的 Build Triggers -> Build periodically -> Schedule 里,定时任务的写法遵循的是 Cron 表达式,格式和 Linux 的 cron 一样
2025-09-26 10:14:02
445
原创 python开发:使用logging记录服务端日志并按日期分割日志文件
在python FastAPI项目开发过程中,使用logging记录服务端日志并按日期分割日志文件
2025-09-24 14:50:20
287
原创 活到老学到老之vue-vben-admin项目安装
Vue Vben Admin 是 Vue Vben Admin 的升级版本。作为一个免费开源的中后台模板,它采用了最新的 Vue 3、Vite、TypeScript 等主流技术开发,开箱即用,可用于中后台前端开发,也适合学习参考。项目地址:https://github.com/vbenjs/vue-vben-admin/blob/main/README.zh-CN.md
2025-08-18 17:54:56
337
原创 活到老学到老之Jenkins Pipeline Job
每天早上都要打Android包和iOS包,多个人多个项目的时候打包就要排队,可能需要半个小时不止,等的比较焦急,有这样的情况,就可以使用Jenkins Pipeline Job定时打包了。
2025-08-15 11:15:32
345
原创 活到老学到老之使用jenv管理多个java版本
我本地安装的java版本是1.8,用来跑Android UI自动化的,Appium要求使用的java版本是1.8,现在有另一个需求是要在本地解aab包,bundletool要求使用的java版本是21,所以需要在本地管理两个java版本,根据需要随时切换java版本。
2025-08-08 20:30:36
267
原创 活到老学到老之AES加密
AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,广泛应用于数据加密与传输安全。AES 是美国国家标准与技术研究院(NIST)在 2001 年正式发布的标准,取代了之前的 DES(Data Encryption Standard)。
2025-07-31 10:27:05
869
原创 Python 实现多服务器并发启动 SDK-C Master 与 Viewer 的分布式方案
这次介绍一下使用python实现分布式在多台服务器上并发启动master和viewer,用以实现更高的并发和负载。
2025-07-28 10:55:23
1023
原创 AWS WebRTC:我们的业务模式
设备端(摄像机) 与 App端 是通过 AWS KVS WebRTC 信令服务进行“点对点连接”的,真正的媒体数据(音视频)是通过 WebRTC 的 ICE 通道(P2P 或 TURN)直接传输的,而不是经过 KVS 中转。
2025-07-25 14:59:25
346
原创 活到老学到老之用 ffprobe 查看视频中的 I/P 帧分布
ffprobe -select_streams v:0 -show_frames -show_entries frame=pict_type -of csv output.mp4 - -select_streams v:0:选择第一个视频流 - -show_frames:显示每一帧信息 - -show_entries frame=pict_type:只显示帧类型(pict_type) - -of csv:输出为 CSV 格式(也可以用 json 或 default)
2025-07-24 10:31:41
920
原创 活到老学到老之CDN简介
CDN(Content Delivery Network,内容分发网络)的作用是:让用户从最近的服务器访问内容,提高访问速度,减轻源站压力。
2025-07-23 10:41:18
356
原创 云录事件:m3u8和ts下载及解析
业务中云录事件是通过若干ts文件和一个m3u8文件实现的,固件端开始录像时生成m3u8文件,随着录制的进行生成若干ts文件,并上传至s3,事件录制结束后再上传一次m3u8文件覆盖之前的m3u8文件。
2025-07-22 11:12:40
1277
原创 细说I帧、P帧:运动矢量和残差
进一步解释 P 帧的原理:P 帧不是“截图变化区域”,它是“运动矢量 + 差异数据”,每一帧图像被分成很多 宏块(Macroblock,通常是 16x16 像素),然后每个宏块都去做下面这件事:1、去 前一帧中寻找“最相似的块”2、记录这个块 移动了多少(叫做运动矢量)3、再记录和原图的像素差异值(残差)所以,P 帧的内容是: - 哪些块和前一帧一样(跳过) - 哪些块变了,变了多少(矢量 + 差值)
2025-07-21 10:51:15
1094
原创 AWS WebRTC:RTP讲解
RTP简介:RTP(Real-time Transport Protocol,实时传输协议)是音视频领域非常基础和重要的一个协议。RTP 是一种用于通过 IP 网络实时传输音频和视频的协议,常用于视频会议、语音通话、实时监控等实时媒体传输场景。
2025-07-17 10:30:40
1000
原创 AWS WebRTC 并发 Viewer 拉流失败分析:0.3 秒等待为何如此关键?
前面的文章介绍了,在并发启动viewer的时候拉流失败,解决方法是在启动每个viewer后给它留0.3秒的初始化时间,这0.3秒是如何体现的呢?
2025-07-16 10:41:01
946
原创 用鼠标点击终端窗口的时候出现:0;61;50M0;61;50M0;62;50M0
用鼠标点击终端窗口的时候出现:0;61;50M0;61;50M0;62;50M0
2025-07-11 10:30:06
477
原创 三种帧类型介绍:I、P、B 帧
I 帧是完整图像,P/B 帧是压缩的差异图像;视频压缩就是“保存关键图像 + 补充变化部分”;I 帧决定是否能独立播放、seek、解码;
2025-07-09 10:32:59
822
原创 AWS规则引擎
AWS 的规则引擎,通常指的是 AWS IoT Core 规则引擎(AWS IoT Rules Engine),它是 AWS IoT 服务中的一个核心组件。
2025-07-08 10:23:52
476
空空如也
postman body 中如何动态传递数组
2024-02-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅