自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 收藏
  • 关注

原创 Cursor Rules 使用

Cursor Rules是用于规范AI编程助手行为的配置规则,分为全局(User Rules)和项目级(Project Rules)。通过设置代码风格、安全实践等约束,确保AI生成的代码符合项目规范。规则分为三个层级:通用规则(如缩进要求)、语言规则(如Python的PEP8遵循)和框架规则(如Next.js的API路由规范)。合理配置Rules可显著提升代码一致性,减少返工,并强制实施最佳实践,使AI成为更高效的开发助手。建议开发者根据项目需求精心配置Rules以获得最佳效果。

2025-06-07 09:29:30 733

原创 阿里云服务器邮件发送失败(dail tcp xxxx:25: i/o timeout)因为阿里云默认禁用 25 端口

阿里云服务器上发送邮件超时的问题,是由于阿里云默认禁用25端口防止垃圾邮件,建议改用465或587端口连接SMTP。文中提供了Go语言示例代码,展示如何通过465端口发送邮件,并推荐了相关技术文章链接。

2025-05-29 12:29:04 720

原创 go 访问 sftp 服务 github.com/pkg/sftp 的使用踩坑,连接未关闭(含 sftp 服务测试环境搭建)

本文分析了使用Go语言sftp库时出现连接泄漏问题,指出仅关闭sftp.Client而不关闭底层的ssh.Client会导致SSH连接未释放。通过代码示例展示了正确关闭连接的方法。同时介绍了使用Docker搭建sftp测试环境时遇到的两个常见问题:权限设置和密钥配置,特别强调了宿主目录权限需要匹配容器内用户UID/GID,以及必须放置正确的公钥文件到映射目录。文章为开发者提供了sftp连接管理和测试环境搭建的实用指导。

2025-05-24 10:11:25 1024

原创 dockerfile: PaddleOCR hubserving api 服务

本文介绍了如何通过 docker 快速部署基于 PaddleOCR 的 OCR API 服务。文章提供了详细的 dockerfile 内容,包括基础镜像选择、依赖安装、模型下载与解压、服务启动等步骤。用户只需按照步骤构建镜像、运行容器,并通过 curl 命令测试服务。文中还特别提醒了模型路径的配置和图片 base64 字符串的处理方式。通过本文,用户可以轻松部署一个功能完善的 OCR 服务。

2025-05-12 14:56:59 530

原创 docker容器中go访问https出错tls: failed to verify certificate: x509: certificate signed by unknown authority

docker容器中访问https,是缺少了CA证书,在制作镜像时要记得添加一下证书。

2025-04-24 15:01:48 742

原创 go 编译的 windows 进程(exe)以管理员权限启动(UAC)

windows系统,在打开某些exe的时候,会弹出“用户账户控制(UAC)”的弹窗 “你要允许来自xx发布者的此应用对你的设备进行更改吗?UAC,用户账户控制)是Windows操作系统中的一个安全组件,如果程序未通过管理员权限启动,可能会导致应用程序发生错误。本篇简单介绍 2 种在go中以管理员权限启动程序的方式。

2025-04-22 17:43:56 533

原创 字符编码,计算机是如何认字的(ASCII,Unicode,UTF-8,GBK 都是些什么)

最近遇到了几个编码转换的问题,为什么会出现乱码呢?就想搞清楚计算机是如何“认字”的,查查资料进行总结。提一嘴bit(位),计算机中数据的最小单位,0或1。byte(字节),1 byte = 8 bit。字符,例如:A,1,国 等具体的文字符号。

2025-01-23 18:49:07 1078

原创 Android adb 调试,不在手机上点击信任 “允许usb调试” 即可连接的方式(手机需root)

通过更改手机的 /data/misc/adb/adb_keys 文件来达到直接信任电脑的效果。

2025-01-16 13:58:25 2208

原创 mysql 数据表导出为 markdown(附 go 语言 gorm 的实际使用)

通常业务系统开发中,数据库的设计与维护是至关重要的环节。而数据库的文档化则是确保团队成员之间有效沟通、快速理解系统架构的基础。mysql_markdown 工具将 mysql 数据库表导出为 markdown。

2024-11-22 10:45:38 556 2

原创 minio 使用 PostPolicy 方式上传文件

PostPolicy是一种用于生成预签名的POST请求的方法,允许客户端直接向S3兼容的存储服务(如MinIO)上传文件,而不需要通过后端服务器中转。可以在PostPolicy中设置各种条件,如文件大小限制、文件名前缀等。本篇简单介绍了下minio直接从客户端上传文件的另一种方式PostPolicy,并附上了示例代码。用户拿到sts临时凭证后随意上传文件,这个没法控制,如果真有人拿到了临时凭证恶意上传大文件,导致oss服务不能用了,那只有通过法律的铁拳来打击了。

2024-11-19 18:56:05 628

原创 云手机简述(概况,使用场景,自己部署云手机)

云手机(Cloud Phone)是一种基于云计算技术的虚拟手机服务,它将手机的操作系统和应用程序托管在云端服务器上,用户可以通过互联网连接来访问和操作这些虚拟手机。与传统的智能手机不同,云手机不需要依赖物理硬件,用户可以使用多种设备(如智能手机、平板电脑、笔记本电脑等)通过互联网访问和使用云手机服务。

2024-10-28 14:11:02 3163

原创 Gitlab 中几种不同的认证机制(Access Tokens,SSH Keys,Deploy Tokens,Deploy Keys)

Gitlab 中几种不同的认证机制解析,并介绍了在做 CI 时,Docker 镜像中如何用 Go 拉取私有仓库的代码。

2024-09-12 15:04:07 4421

原创 MinIO实战攻略:轻松构建私有云存储解决方案

OSS(Object Storage Service)通常指的是对象存储服务,它是一种数据存储架构,用于存储和检索非结构化数据,如图片、视频、文档和备份等。对象存储服务与传统的块存储和文件存储不同,它将数据作为对象来存储,每个对象都包含数据、元数据和一个唯一的标识符。在对象存储系统中,数据被组织成一个扁平的结构,而不是传统的文件系统中的层级结构。高扩展性:可以轻松地扩展存储容量,以适应不断增长的数据量。高可用性:通常提供冗余存储,确保数据在硬件故障时仍然可用。

2024-08-23 17:34:27 993 2

原创 【记录】go 设置 http 请求超时

平常自己使用http发送请求设置超时,都是直接给对象设置Timeout属性,很少使用这种对单个Request设置超时的。其实还是个熟练度问题,平常源码读的比较少。有空读读源码不仅可以在使用代码的时候更得心应手,也能够学习借鉴源码的代码设计实现。对自己平常经常需要使用的库,还是建议都过一遍源码,很不错的一个打发空闲时间的方式。

2024-08-09 17:59:47 730

原创 AI 编程辅助工具介绍

2023 被称为“AI元年”,人工智能、AI大模型概念迅速点燃市场。对程序员来说,如果能让 AI 帮助我们编码,那工作效率不得起飞!本篇简单介绍一下当前主流的 AI 编码工具。目前的 AI 辅助编程工具还在飞速发展,本地部署训练的效果都不如 GitHub Copilot 等大厂的产品好用。短期内建议使用云服务产品来做代码辅助,长期考虑,可以先本地部署了解下其原理(硬件不行的就不要再考虑了),尝试自己生成模型。

2024-04-16 15:46:27 1843

原创 【开发掉坑】go 中 interface 的 nil 判断

今天介绍下 `go` 中的 `interface(any)` 的 `nil` 判断,项目中遇到的一个小问题,知识遗忘了,再做个记录。

2024-01-19 15:27:50 1098

原创 go module 名称与 GitHub/Gitlab 地址不同时的引用方式(module declares its path as: github.com/someone/repo )

本篇介绍了go引用第三方库时,当module名称和引入仓库地址不同的情况下的解决方式:使用mod的replace特性。使用replace将替换成网站地址即可。module declares its path as: github.com/someone/repo but was required as: github.com/you/repo 的解决方式

2023-11-06 17:22:09 2064

原创 golang 发起 http 请求,获取访问域名的 ip 地址(net, httptrace)

本篇介绍了在go中如何获取访问域名的ip地址,通过go官方net包可获取。如果有记录http请求的域名ip这种需求,可以使用go 1.17后添加的httptrace包来插入钩子获取请求的ip地址。当然了,httptrace的作用不止于此,它可以搜集http客户端请求整个生命周期中的信息,本篇未做详细介绍,感兴趣的可自行探索。

2023-11-02 10:40:15 2905 1

原创 电子邮件发送接收原理(附 go 语言实现发送邮件)

本文阐述了电子邮件发送接收原理。大体流程:用户A-> 邮箱服务器 (-> 其他邮箱服务器) -> 用户B。最后介绍了下使用golang来发送邮件,配置好服务器后还是很方便的。

2023-10-25 18:42:10 1392

原创 adb 获取 Android 设备中已安装的 apk 文件

如何将手机中的安装包导出,可以借助 MT管理器或者 adb 工具。

2023-10-20 19:42:42 4172

原创 docker 已经配置了国内镜像源,但是拉取镜像速度还是很慢(gcr.io、quay.io、ghcr.io)

docker拉取镜像慢,通常配置了国内镜像源后,速度可以得到极大的改善。但若是配置了镜像源后,拉取镜像还是非常慢,那就需要自己想想办法搭个梯子直接从外网拉取镜像。

2023-09-13 11:07:01 17902 4

原创 git submodule 子模块的基本使用

使用了submodule后,若不主动更新,项目会一直使用固定版本的submodule模块,需手动更新(若是在go或者其他有包管理的项目中,建议还是使用开发语言工具去做这种类似的第三方包管理会比较方便。

2023-08-31 16:04:54 1212

原创 linux 性能分析之内存分析(free,vmstat,top,ps,pmap等工具使用介绍)

linux 的内存分析工具的简单使用。/proc/meminfo,free,vmstat,top,ps,pmap

2023-08-21 22:58:31 4349

原创 flutter 解压 zip 中文乱码问题处理

很简单的一个zip包解压缩的功能,但是windows平台中文显示乱码,很糟心,搜了一圈没找到现成的方法,在此贴上我的解决方式。

2023-08-11 16:05:53 1310

原创 flutter 初识(开发体验,优缺点)

flutter的上手难度还行,不过我做上述的小应用,还是花了一天的时间(主要还是要熟悉其框架结构以及基础语法,数据请求等),整体开发体验还不错,中文社区也挺强大的,基本上问题一搜都能有解答。这里要吐槽一下,我做的应用有个解压缩的功能,遇到了gbk编码问题,flutter对中国用户真是不怎么友好,这个问题花了好半天才解决(可能是我太菜了 =-=!跨平台提供了便利性,同样也提高了复杂性,对开发者的知识广度还是有需求的。

2023-08-11 15:43:17 2058

原创 低代码平台的使用学习

低代码平台是一种开发工具或环境,它们旨在简化应用程序的开发过程,减少编码量,提高开发效率,同时降低对传统编程知识的依赖。通过低代码平台,开发人员可以使用图形化界面和拖拽功能,而不需要手写大量代码,从而更快地构建应用程序。总的来说,低代码平台在适合的场景下可以显著提高开发效率和降低开发成本,对于快速原型、中小规模项目以及业务人员参与开发的情况非常有用。但对于复杂的、高性能要求以及高度定制化的项目,传统的编程方法可能更为适用。

2023-08-04 11:22:54 1052

原创 go 中的代码漏洞检查

govulncheck是go官方提供的一个二进制工具,用于检查go代码或二进制文件是否存在已知的安全漏洞。是go官方提供的一个漏洞检查工具。go团队从多处采集漏洞并存入自己的漏洞库,然后通过工具对代码或二进制文件进行漏洞扫描。很棒的一款工具,建议在日常的开发流程中(CI/CD,代码审查等)引入漏洞检查,能够帮助我们通过go来构建高质量、高安全性的程序。

2023-07-31 11:13:53 698

原创 探索 APK 文件的内部:了解 Android 应用程序的组织结构

APKAndroidpackage) 是构建和发布Android应用程序的关键组成部分,APK文件是应用程序的打包格式,它将应用程序的代码、资源和清单信息组合在一起,以便在设备上进行安装和运行。简称 ”“,其本质上就是一个zip压缩包。

2023-07-20 18:36:39 3594 2

原创 web服务端接收多用户并发上传同一文件,保证文件副本只存在一份(附go语言实现)

本篇只是给个思路,抛砖引玉,介绍了如何实现客户端和服务器端的并发上传控制。通过示例代码,能够确保在并发上传时服务器中只存在一份文件副本。在实际的生产环境中,可能需要进一步优化和增强这些代码,以满足性能、安全性和可靠性方面的需求。

2023-07-05 11:15:51 994 1

原创 go 中的 ~int 类型是什么,怎么在类型前面还有一个波浪线?

本篇介绍泛型中一个小小的特性, 这种类型前添加波浪线的写法,表示的是衍生类型,即使用type自定义的类型也可以被识别到(type MyInt int),底层类型一致即可,主要同泛型一起使用。通常在使用这种需要排序的类型时,直接使用go官方提供的包即可。

2023-05-16 11:22:38 2026 2

原创 实时通信的服务器推送机制 EventSource(SSE) 简介,附 go 实现示例

是HTML5中一个强大的API,提供了简单可靠的服务器推送机制,用于实现实时通信。与WebSocket相比,的优势在于其简单易用、自动重连、轻量级和跨域支持。然而,它也有一些限制,如单向通信和较低的浏览器支持。相比之下,WebSocket适用于双向通信、大规模应用和实时性要求较高的场景,但其复杂性和穿越防火墙的挑战也需要考虑。总的来说,是一种非常有用的API,适用于许多实时应用场景,如实时股票报价、即时聊天、实时通知等。它提供了一种简单而可靠的方式来建立服务器推送连接,并实现实时更新和通知。

2023-05-07 15:18:17 14333 1

原创 go gin 框架设置 header 需要注意的一个坑

`go` 中使用 `c.Header("new-token", "123")` 设置 `http header` 键值的时候,设置的 `new-token` 键会变成 `New-Token` !!!

2023-03-23 17:23:45 3745 1

原创 前后端数据加密传输(附go语言实现)

这里做的加密传输,仅仅只能添加破解的复杂性,不能真的保证数据不泄露。所以一般的服务在做数据交互时也并不会刻意去做这种前后端的数据加密,一般性的是做服务器的session或者客户端的cookie校验,来保证数据不泄露,不被篡改。但你要是说我做session校验的token在前端泄露了,那这种也是用户自己的问题(进入黑客网站或其他做了鉴权),服务防不了这种,顶多是增加校验复杂性来让其更加繁琐。所以说在类似付款的操作的时候,都会再进行一次校验(输入密码/验证指纹等),来再做一次权限校验。

2023-03-12 14:22:24 4013

原创 go 调试器 delve(dlv) 的使用(附实例及常用命令解释)

delve工具非常强大,本篇介绍了其基础使用,希望在遇到问题的时候可以快速的进行问题排查,如果安装了GoLand,也可以使用Goland进行调试,相对来说更加的快捷,但遇到一些需要查看汇编代码或者其他高阶应用时,我还没发现GoLand如何使用,所以delve的命令使用最好也是要了解的,不会到时候一头雾水。

2023-02-03 15:20:26 13951 2

原创 go module 的本地仓库依赖解决方案(Multi-Module Workspaces)多 module 工作区模式 简介

go在1.18新推出的依赖本地。依赖本地未发布的module。设置了工作区后,所有的配置都会以工作区的配置为最高优先级。go.work文件不需要上传到git仓库,本地使用即可。go.work。

2023-01-17 11:26:37 2216

原创 go channel 基础(如何优雅地关闭 channel)

想必听说过 go 的,应该都知道 go 的最大的特性 goroutine 并发编程,而说到并发编程,使用 channel 进行数据传输是 go 中的必修课。go 的并发哲学:不要通过共享内存来通信,而要通过通信来实现内存共享。channel 的坑不少,本篇简单聊聊关闭 channel 的方法。

2023-01-12 10:35:29 2857 1

原创 WEB 安全,浅谈 XSS 攻击(附简单实例)

为什么说一些网站上的弹出广告(一刀999)不要去点,特别是已经登录过的网站,个人信息的泄露等都很有可能是从这里泄露的。由于XSS这种攻击手法是很常见且基础的方式,目前大多数的web框架都对其做过适配了,我们也不需要太过担心这种安全问题,但是还是要知道有这么回事,并能够有相应的处理方案。现在大多数的项目都是前后端分离的,前后端都要对XSS有所了解,在实际开发中需要多考虑下这类安全问题。

2022-12-29 22:09:05 4759 2

原创 华硕 A550C 安装 CentOS7 后无法连接 wifi 问题排查解决

最近买了个投影仪,发现那些大厂的影音APP,手机上买了会员后,不能和投影仪上的APP共用,就很恶心。这时发现十年前的老笔记本就躺在投影仪下面的柜子上,上面铺满了厚厚的一层灰,心想这老家伙该起来再操练操练了!用其搭建个webdav服务来在投影仪上看云端电影,岂不美哉。由于其年岁已大,跑起windows来太卡了,所以给它换了个心脏,谁知wifi连不上了!!

2022-11-25 16:25:36 1011

原创 gitlab-runner 的安装使用(含 .gitlab-ci.yml 的简单使用)

gilab-runner 的简介及安装使用,包含 .gitlab-ci-yml 的语法介绍。ci 变量优先级的介绍,以及实际使用中的一些问题。

2022-11-25 15:34:25 2538

原创 HTTPS/TLS/SSL 都是什么,有什么区别?

SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是的简称。TSL可以看作是SSL的升级,现在用的基本上都是TSL证书,但是由于历史习惯,还是会叫做SSL证书。HTTPS的工作流程还是比较复杂的,为了安全着想,设计者们也是花了大心思的。SSL根证书的颁发机构CA是公认的证书颁发机构,可信度高。证书是链式的,链越多,则认证时间越长,一般证书三四层链。

2022-10-30 15:17:51 3902

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除