Hexo-SFTP
简介
使用 SFTP 部署 Hexo 项目,即:使用 SFTP 将 Hexo 生成的的静态文件 (public 目录) 上传到服务器。
安装插件
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
方可解决该问题。