Jack Huang's Blog


  • 首页

  • 标签

  • 归档

  • 搜索

FTP大文件传输之哈希验证

发表于 2024-03-02 | 更新于 2024-03-03

最近使用Filezilla下载GB级别的压缩文件时,发现文件完整性验证失败,导致压缩包无法解压。下载大文件出问题的原因是什么呢?如何解决该问题呢?下面简单探讨一下。

原因分析

根据数字通信系统的基本模型(如图1所示)可知,大文件传输失败的原因最有可能是信道存在干扰。

数字通信系统模型

图1 数字通信系统模型

解决方案

目前采用的解决方案如下:

  1. 将GB级别的文件分卷压缩,放入文件夹中。
  2. 使用HashCalculator工具对文件夹中分卷压缩包进行哈希计算,并将结果保存到文件夹中。
  3. 使用Filezilla下载整个文件夹
  4. 使用HashCalculator工具对下载的文件夹进行哈希验证,哪个分卷压缩包哈希验证不通过,就重新下载该分卷压缩包。

参考链接

  1. 数字通信系统模型(重点内容),by 通信小达人.
  2. HashCalculator,by hrpzcf.
  3. hash support?,by filezilla.
  4. Filezilla配置FTP中的坑以及出坑办法,by asdyzh.
  5. Windows certutil.exe 命令 简单举例 计算MD5与SHA1/256,by ldq_sd.

Web拦截的奇技淫巧

发表于 2024-02-24

Web拦截的作用

计算机科学领域的任何问题都可以通过增加一个中间层来解决。 —— Butler Lampson

在没有系统的控制权,不掌握系统代码的情况下,通过“非常规”(拦截) 手段来增加中间层,满足一些自定义的需求。类似于软件设计模式中的装饰模式。

Web拦截的方法

请参考:

  • Web 终极拦截技巧(全是骚操作)

参考链接

  1. Web 终极拦截技巧(全是骚操作),by 风痕 · 術&思.

Spring_Boot_CLI入门教程

发表于 2024-02-21

Spring Boot CLI 是一个命令行工具,可用于从 start.spring.io 引导新项目或对密码进行编码。

安装

手动安装,参考以下链接,下载 spring-boot-cli-3.2.2-bin.zip ,并将 spring 可执行程序文件夹添加到系统 PATH 环境变量中。

  • 3.2. Installing the Spring Boot CLI

使用

安装 CLI 后,您可以通过在命令行中键入 spring 并按 Enter 来运行它。

1
2
3
4
$ spring
$ spring help init
$ spring version
$ spring init --dependencies=web,data-jpa my-project

参考链接

  1. Spring Boot CLI,by spring.
  2. 3.2. Installing the Spring Boot CLI,by spring.

技术写作的诀窍

发表于 2024-01-27

什么是技术写作

技术写作非常重要,产品的开发、推广、维护都需要它。

技术写作的关键

技术写作的好坏,跟语文水平关系不大,更多是一个技巧问题。

因为技术写作的评价标准,不是艺术性,而是表达是否清楚明白。它不需要华丽的词藻、巧妙的比喻、深刻的感悟,只需要把问题说清楚。

把问题说清楚的关键,在于你的思想是否清楚。

技术写作的诀窍

文章采用单线结构。

所谓”单线结构”(也称”线性结构”),指的是一篇文章只说一件事,按照线性顺序进行叙述,由浅入深、循序渐进、平铺直叙、层层递进。

参考链接

  1. 科技爱好者周刊(第 288 期):技术写作的首要诀窍, 阮一峰.

MobaXterm终端远程访问工具入门

发表于 2024-01-24

MobaXterm 是一个增强型的 Windows 终端。

其为 Windows 桌面提供所有重要的 远程网络工具(SSH、X11、RDP、VNC、FTP、MOSH…)

和 Unix 命令(bash、ls、cat、sed、grep、awk、rsync…)。

参考链接

  1. MobaXterm(终端工具)下载&安装&使用教程,by 蜗牛也不慢…….
  2. 全能终端神器——MobaXterm,by 程序员良许​.
  3. 比Xshell更全能,更好用的SSH客户端神器,MobaXterm,by 大技术.

kettle入门教程

发表于 2024-01-23 | 更新于 2024-01-26

Kettle 是一款国外开源的 ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

简介

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle(现在已经更名为PDI,Pentaho Data Integration-Pentaho数据集成)。

概念

Kettle的执行分为两个层次:Job(作业)和Transformation(转换)。

组成

  • Spoon.bat/spoon.sh:是一个图形化界面,可以让我们用图形化的方式开发转换和作业。

  • Pan.bat/pan.sh:利用Pan可以用命令行的形式调用Trans。

  • Kitchen.bat/kitchen.sh:利用Kitchen可以使用命令行调用Job。

  • Carte.bat/Carte.sh:Carte是一个轻量级的Web容器,用于建立专用、远程的ETL Server。

问题

kettle连不上mysql数据库

kettle 7.1在 win7 上能正常连接mysql数据库,复制到 Win10 上反而不能连接成功。最后发现原因是 Win10 的时间设置不对,改成正常时间就能连接成功。

参考链接

  1. kettle入门实战,by Gavin.
  2. kettle的基础概念入门、下载、安装、部署,by Kettle中文网.
  3. 七十七、Kettle的简介与安装部署,by 象在舞.
  4. Kettle下载与安装教程【保姆版】,by 亭子下的李子.

Java_Web_Start技术入门教程

发表于 2024-01-21 | 更新于 2024-01-25

JavaTM Web Start 是基于 Java 技术的应用程序的一种部署解决方案。它是连接计算机和 Internet 的便捷通道,允许用户在完全脱离 Web 的情况下运行和管理应用程序。Java Web Start 提供一次单击激活应用程序的简易方法,并保证始终运行应用程序的最新版本,从而可避免复杂的安装或升级过程。

简介

Java Web Start 技术是一种面向 Web 的应用程序部署解决方案。使用全功能应用程序替代基于 HTML 的客户软件具有多种好处:

  • 高度交互的用户界面,可与传统应用程序(如文字处理和电子表格软件)相媲美。
  • 较低的带宽需求。应用程序无须在每次单击时都与 Web 服务器进行连接,它可以缓存已经下载的信息。这样,它可以在低速连接上实现更好的交互性。
  • 支持脱机使用。

Java Web Start 启动客户机应用程序流程

图1 Java Web Start 启动客户机应用程序流程

参考链接

  1. Java Web Start 指南,by allway2.
  2. JavaTM Web Start 技术,by lemoyne.
  3. 用于部署应用程序客户机的 Java Web Start 体系结构,by ibm.
  4. [Java进阶] Swing两万字大总结一(超详细教程,这不得收藏一波),by 程序喵正在路上.
  5. Java Servlet,by wikipedia.
  6. java和 javaw 以及 javaws的区别,by bird_cat.
  7. JNLP(Java Web Start )(转) ,by 沧海一滴.
  8. Tomcat Jboss Glassfish 三种常见web容器比较,by langdashu.
  9. Java Web Start,by wikipedia.

Nodejs常用库简介

发表于 2024-01-21

Nodejs常用库是每个Nodejs开发人员必须熟悉的工具。常用的Nodejs库主要有:

  • Sequelize
  • Expressjs
  • CORS
  • Nodemailer
  • passport
  • Async
  • Winston
  • Mongoose
  • Socket.IO
  • Lodash
  • Axios
  • puppeteer
  • Multer
  • Dotenv

参考链接

  1. Node.js Power Tools: 13 Libraries Every Developer Should Know,by Pinjari Rehan.

PostgreSQL数据库学习笔记

发表于 2024-01-21

最近公司决定使用 PostgreSQL 数据库,提前学习一下。

PostgreSQL简介

PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用并扩展了 SQL 语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL 的起源可以追溯到 1986 年,是加州大学伯克利分校 POSTGRES 项目的一部分,在核心平台上已经有超过 35 年的积极开发历史。

PostgreSQL 以其成熟的架构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后的开源社区的奉献精神而赢得了良好的声誉,以始终如一地提供高性能和创新的解决方案。PostgreSQL 可在所有主要操作系统上运行,自 2001 年以来一直符合 ACID 标准,并具有强大的附加组件,例如流行的 PostGIS 地理空间数据库扩展器。毫不奇怪,PostgreSQL已成为许多人和组织的首选开源关系数据库。

PostgreSQL 具有许多功能,旨在帮助开发人员构建应用程序、管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集有多大或多小。除了免费和开源之外,PostgreSQL 还具有高度可扩展性。例如,您可以定义自己的数据类型,构建自定义函数,甚至可以使用不同的编程语言编写代码,而无需重新编译数据库!

PostgreSQL 功能简介

Data Types 数据类型

  • Primitives: Integer, Numeric, String, Boolean
    基元:整数、数字、字符串、布尔值
  • Structured: Date/Time, Array, Range / Multirange, UUID
    结构化:日期/时间、数组、范围/多范围、UUID
  • Document: JSON/JSONB, XML, Key-value (Hstore)
    文档:JSON/JSONB、XML、键值 (Hstore)
  • Geometry: Point, Line, Circle, Polygon
    几何图形:点、线、圆、多边形
  • Customizations: Composite, Custom Types
    自定义:复合、自定义类型

Data Integrity 数据完整性

  • UNIQUE, NOT NULL 唯一,不为 NULL
  • Primary Keys 主键
  • Foreign Keys 外键
  • Exclusion Constraints 排除约束
  • Explicit Locks, Advisory Locks
    显式锁、咨询锁

Concurrency, Performance 并发性、性能

  • Indexing: B-tree, Multicolumn, Expressions, Partial
    索引:B 树、多列、表达式、部分
  • Advanced Indexing: GiST, SP-Gist, KNN Gist, GIN, BRIN, * Covering indexes, Bloom filters
    高级索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆盖索引、布隆过滤器
  • Sophisticated query planner / optimizer, index-only scans, multicolumn statistics
    复杂的查询计划器/优化器、仅索引扫描、多列统计信息
  • Transactions, Nested Transactions (via savepoints)
    事务、嵌套事务(通过保存点)
  • Multi-Version concurrency Control (MVCC)
    多版本并发控制 (MVCC)
  • Parallelization of read queries and building B-tree indexes
    读取查询的并行化和构建 B 树索引
  • Table partitioning 表分区
  • All transaction isolation levels defined in the SQL standard, including Serializable
    SQL 标准中定义的所有事务隔离级别,包括 Serializable
  • Just-in-time (JIT) compilation of expressions
    表达式的实时 (JIT) 编译

PostgreSQL 安装配置

安装

PostgreSQL安装过程如下:

1
2
3
4
5
6
7
8
9
10
11
# 安装PostgreSQL服务
sudo yum install -y postgresql12 postgresql12-server

# 初始化数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb

# 启动PostgreSQL服务
sudo systemctl start postgresql-12

# 设置PostgreSQL服务为开机启动
sudo systemctl enable postgresql-12

配置

PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。

postgres数据库中会初始化一名超级用户postgres。为了方便我们使用postgres账号进行管理,我们可以修改该账号的密码。具体命令如下:

1
2
3
4
5
6
7
8
su postgres

# 登录PostgreSQL数据库
psql
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432

# 为postgres用户设置新密码
ALTER USER postgres WITH PASSWORD 'NewPassword';

PostgreSQL 模式(SCHEMA)

PostgreSQL 模式(SCHEMA)可以看着是一个表的集合。

一个模式可以包含视图、索引、数据类型、函数和操作符等。

相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 myschema 都可以包含名为 mytable 的表。

使用模式的优势:

  • 允许多个用户使用一个数据库并且不会互相干扰。

  • 将数据库对象组织成逻辑组以便更容易管理。

  • 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突。

1
2
3
CREATE SCHEMA schema_name;
# 切换到新创建的模式,以查询模式下的对象
SET search_path TO schema_name;

数据库相关语法示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 创建数据库
CREATE DATABASE mydb;

# 查看所有数据库
\l

# 切换当前数据库
\c mydb

# 创建表
CREATE TABLE test(id int,body varchar(100));

# 查看当前数据库下所有表
\d

# 列出某一张表格的结构
\d [table_name]

# 列出所有用户
\du

# 列出所有用户,包含额外列
\du+

# 打开文本编辑器
\3

# 列出当前数据库和连接的信息
\conninfo

# 退出
\q

# 查看SQL命令的解释,比如\h select。
\h

# 查看psql命令列表
\?

用户与访问授权语法示例

1
2
3
4
5
6
7
8
#新建用户
CREATE USER test WITH PASSWORD 'test';

#赋予指定账户指定数据库所有权限
GRANT ALL PRIVILEGES ON DATABASE mydb TO test;

#移除指定账户指定数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE mydb TO test

参考链接

  1. About PostgreSQL,by postgresql.
  2. PostgreSQL新手入门,by ruanyifeng.
  3. 在CentOS 7上安装&配置PostgreSQL 12,by 数据库.
  4. 【PostgreSQL】系列之 一 schema详解(二),by 阿龙先生啊.

GlassFish使用帮助

发表于 2024-01-20

Glassfish是一款Web应用服务器,和Tomcat一样,也是一款优秀的Servlet容器。

功能端口

GlassFish 常见功能端口主要有:

端口名称 端口号
Admin 4848
HTTP Instance 8080
JMS 7676
IIOP 3700
HTTP_SSL 8181
IIOP_SSL 3820
JMX_ADMIN 8686

备注:JMS 即 Java 消息服务,是一种消息传递标准,它允许基于 Java 平台企业版 (Java EE) 的应用程序组件创建、发送、接收和读取消息。它支持松散耦合、可靠和异步的分布式通信。

参考链接

  1. GlassFish 总结,by 全栈程序员站长.
  2. GlassFish,by wikipedia.
  3. 深入浅出带你学习GlassFish中间件漏洞,by XINO.
  4. 消息队列-OPEN MQ,by 小树木.
上一页1…678…53下一页

Jack Huang

521 日志
67 标签
© 2025 Jack Huang
由 Hexo 强力驱动
|
主题 — NexT.Muse