JAVA 上传文件到对象存储出现OOM

本文讨论了在Java应用程序中将文件上传到对象存储时出现的内存不足错误。当使用流式上传到S3时,如果直接调用S3客户端的putObject方法,会出现内存不足的风险,因为数据会全部缓存在内存中。解决方法是设置好对象的内容大小,即设置Content Length,以避免内存耗尽的错误。

IT-tools 开发常用工具集

IT Tools 是一个开源项目,提供给开发者使用的便捷在线工具集合。这个工具集合包含了多种实用工具,为开发者和 IT 从业人员提供便利。IT Tools 提供了优秀的用户体验,并且是免费开放源代码的。

NFS Server 搭建与配置

NFS(Network File System)是一种分布式文件系统协议,可以使计算机在网络中像访问本地文件一样访问远程文件。在Linux系统中,可以通过安装NFS服务端和配置NFS来实现共享存储。安装NFS服务端需要使用特定的命令,如在Debian系发行版中可以使用以下命令安装NFS:sudo apt install nfs-kernel-server。配置NFS需要编辑/etc/exports文件,指定共享路径、允许的主机和共享参数,如读写权限、同步写入等。编辑完成后,使用sudo exportfs -arv命令启动共享文件夹。管理NFS服务可以通过systemctl命令来查看状态、启动和重启NFS服务。连接NFS客户端需要安装NFS客户端并挂载NFS共享目录,最后可以进行测试以确保共享目录的正常使用.

My Linux Laptop Apps

这是一个关于我在 Linux 环境下使用的应用程序清单的简要记录。清单中包括了各种应用程序和插件,但不包括浏览器和集成开发环境(IDE)的扩展。 这些应用程序可以帮助我在 Linux 环境下进行开发、办公和日常使用。

我的 MacBook 配置记录

记录了 MacBook 的一些环境配置。包括使用 ClashX Pro 进行全局按规则分流,安装 Oh My Zsh 和 powerlevel10k 主题,以及使用 Homebrew 安装各种应用程序和工具。还包括配置 Rime 输入法和一些小技巧,如修改主机名、减少 Dock 栏动画响应时间和修改启动台行列数等。

eu.org 域名注册记录

eu.org 是一类免费域名,个人或非营利组织可以注册。注册流程包括:注册账号、申请域名、填写地址和联系信息、添加域名到 CloudFlare。在大陆使用时需要配合 HTTPS,并且在某些运营商下无法解析。

为什么 @Autowired 注解在 IDEA 中会有警告提示

在 IDEA 中,使用 @Autowired 注解会出现警告提示。这是由于最佳实践和设计原则导致的。字段注入方式虽然简洁方便,但存在一些问题,会增加应用程序与框架之间的紧耦合。为了消除警告,可以使用 @Resource 注解替换 @Autowired 注解。三种主要的依赖注入方式是:字段注入、构造函数注入和 Setter 方法注入。推荐使用构造函数注入,并可结合 lombok 来简化代码。

Nginx buffer 配置问题记录

最近在项目中遇到了一个问题:获取菜单树形结构数据的接口在初始时正常,过一段时间后就会出错。经过排查发现,这个问题和 Nginx 的 buffer 配置有关。Nginx 的 buffer 机制默认启用,它会将后端响应缓存在内存或磁盘上,然后再慢慢推送给客户端。但是如果后端响应较慢或数据量较大,同时缓冲区设置不足以容纳完整的响应数据,就会导致数据被截断。解决方法是调整 Nginx 的 buffer 配置,增加缓冲区的大小和数量,以及临时文件的写入大小和大小限制。此外,还可以调整超时设置。关闭 buffer 虽然可以解决问题,但不推荐,因为会影响到 Nginx 到后端的连接复用。

命令行快速登录有OTP二次验证的堡垒机/跳板机

该方法通过 Shell 脚本自动输入 TOTP 验证码,实现快速登录堡垒机。通过修改 SSH Config 文件和编写 Shell 脚本,可以在终端中直接通过命令登录到堡垒机,无需手动输入密码和二次验证码。这样可以大大提高登录的效率。但是需要注意的是,这种方法可能会牺牲一定的安全性,所以建议仅在个人可信环境下使用。

Drone CI 搭建记录

Drone 是一个轻量级、现代化的持续集成和持续交付平台。通过与 Docker 和 Kubernetes 集成,以及与主流的 Git 平台联动,Drone 可以实现自动化的构建、测试和部署工作流程。在搭建过程中,需要在 Git 平台上创建一个应用,并获取 Client ID 和 Client Secret,然后将这些信息配置到 Drone Server 和 Runner 中。Drone Server 负责接收和处理 CI/CD 任务,而 Drone Runner 负责在 Docker 容器中执行这些任务。在项目中,可以通过配置一个.drone.yml 文件来定义 Drone 的工作流程,包括构建、打包和部署等步骤。最后,通过 Drone Web 界面可以手动触发 Pipeline 或配置自动触发,监控任务的运行情况。通过这种方式,可以实现高效的 CI/CD 流程,提高开发效率。