之前使用ssh2-sftp-client来实现了终端文件上下载,同时因为支持流方式,所以做到了分片上传和下载,同时也就有了进度条。但传输时候网路是有不确定性的随时中断,那么就需要断点续传。这里了解了下ssh2-sftp-client的实现,发现实际上支持断点是具备可行性的。

put/get方法

put/get方法的第三个参数是options。其中有writeStreamOptions/readStreamOptions。这两个对象仔细查看定义,会发现其中有一个start参数,这个参数表示从哪个位置开始传输。

有了这个参数,就可以实现断点续传了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
export interface ReadStreamOptions extends ReadableOptions {
flags?: OpenMode;
mode?: number;
start?: number;
end?: number;
autoClose?: boolean;
handle?: Buffer;
}

export interface WriteStreamOptions extends WritableOptions {
flags?: OpenMode;
mode?: number;
start?: number;
autoClose?: boolean;
handle?: Buffer;
encoding?: BufferEncoding;
}
阅读全文 »

最近接触一个项目使用的nextjs,构建发布整个时间消耗为12min,或者更长。查看整个构建过程,发现还是有优化点的,这里mark下。

说明

CD流水线使用的腾讯Coding。

优化前logic

流水线拉取后直接走docker构建,dockerfile中有如下几步

阅读全文 »

Mac下OpenEmu玩游戏,如果直接使用键盘操作,会很不方便。手上有Xbox游戏主机,查询后发现Xbox手柄可以连接Mac来玩OpenEmu的小游戏。这里mark下操作步骤。

Mac蓝牙连接Xbox手柄

  1. 打开Mac的蓝牙设置,选择添加设备。
  2. 在Xbox手柄上按下配对按钮,Mac会自动搜索到Xbox手柄。
  3. 搜索到后,选择Xbox设备进行连接。

阅读全文 »

最近使用monaco-editor来实现JSON数据编辑器,为了提升用户体验,需要实现JSON Schema的智能提示。研究后发现了实现方法,因此这里Mark下。

实现

使用monaco-editor的语言服务,实现JSON Schema的智能提示。

设置JSON Schema

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
39
40
41
42
43
44
45
monaco.languages.json.jsonDefaults.setDiagnosticsOptions({
validate: true,
schemas: [
{
uri: "http://myschema/abi-schema.json",
fileMatch: [model.uri.toString()],
schema: {
type: "array",
items: {
type: "object",
required: ["type"],
properties: {
name: {
type: "string",
description: "函数或事件名称"
},
type: {
type: "string",
enum: ["function", "event", "constructor"],
description: "类型:function(函数)、event(事件)、constructor(构造函数)"
},
inputs: {
type: "array",
description: "输入参数",
items: {
type: "object",
properties: {
name: {
type: "string",
description: "参数名称"
},
type: {
type: "string",
description: "参数类型"
}
}
}
}
}
}
}
}
]
})

阅读全文 »

最近入手了MacBook Air M4,使用了几天觉得很不错,这里mark下我的使用体验。

购买动机

手上非办公电脑虽然已经有了Mac mini,但是还缺一台便携的笔记本,计划是不作为主力工具,只为以备不时之需。因此考虑预算后决定入手一台MacBook。

入手

阅读全文 »
0%