Hexo-SFTP
简介
- 使用SFTP部署Hexo项目,即:使用SFTP将Hexo生成的的静态文件(public目录)上传到服务器。
- ⚠ 因为其依赖的 ssh2 存在漏洞,所以使用需慎重,具体参考:#15,希望作者可以早日修复。
-
安装插件
1
npm install hexo-deployer-sftp --save
-
修改配置
-
使用密码
1
2
3
4
5
6
7
8
9deploy:
- type: sftp
host: host
user: user
pass: password
remotePath: remote path
port: 22
forceUpload: false
concurrency: 50修改Hexo配置文件
_config.yml
中的deploy
选项,设置concurrency: 50
避免出现因超时而导致文件上传不完整。 -
使用秘钥
1
2
3
4
5
6
7
8
9deploy:
- type: sftp
host: host
user: user
remotePath: remote path
port: 22
privateKey: path/to/privateKey
passphrase: passphrase
agent: path/to/agent/socket修改Hexo配置文件
_config.yml
中的deploy
选项,该方法我尝试的时候报错:err: Error: Cannot parse privateKey: Unsupported key format
不建议使用,参考链接。
-
-
参数详解
参数 描述 默认值 host
远程主机的地址 user
使用者名称 pass
密码 remotePath
远程主机的根目录 /
port
端口 22 privateKey
ssh私钥的目录地址 passphrase
(可省略)ssh私钥的密码短语 agent
ssh套接字的目录地址 $SSH_AUTH_SOCK
-
上传文件
1
hexo d
使用以上步骤配置完成后,即可在生成静态文件(public目录)后使用以上命令上传文件
-
返回参数
1
2
3
4
5
6Deploying with configuration: {
dryRun: false,
forceUpload: undefined,
excludeMode: 'remove',
concurrency: 100
}- dryRun:使用dry-run模式,默认为false。
- forceUpload:强制上传所有文件,默认为false(只上传更新的文件)。
- excludeMode:被排除文件的行为(remove或ignore),默认为remove。
- concurrency:最大并发处理SFTP任务数。默认为100。
-
部署策略
- 该插件(SFTP)使用的是 增量更新 的策略,也就是说如果服务器上相同的文件已经存在,该插件会跳过已存在的文件,只更新那些服务器上不存在但是本地新增的文件以及那些服务器上已存在但是本地修改过的文件。
- 因为使用的是 增量更新 的策略,并且默认上传是有100个任务并发上传,所以上传速度其实挺快的,主要影响上传速度的也就是服务器的带宽了。
-
注意事项
在上传时可能会遇到 随机超时 而导致文件上传不完整的情况,参考#2,这时需要设置
concurrency: 50
方可解决该问题。