当前位置: 首页 > wzjs >正文

各类服装网站建设网站关键词免费优化

各类服装网站建设,网站关键词免费优化,怡梦姗网站做么,wordpress 禁用谷歌ftp自动上传 在我们平时开发项目时,需要将本地代码编译后上传到服务器,我们可以借助Node.js库中的ssh2来实现自动上传 首先我们先来说下ssh2的安装和使用 安装ssh2 npm install ssh2创建ssh2实例 const { Client } require(ssh2);连接服务器 const c…

ftp自动上传

在我们平时开发项目时,需要将本地代码编译后上传到服务器,我们可以借助Node.js库中的ssh2来实现自动上传

首先我们先来说下ssh2的安装和使用

  1. 安装ssh2
  npm install ssh2
  1. 创建ssh2实例
  const { Client } = require('ssh2');
  1. 连接服务器
  const conn = new Client();conn.on('ready', () => {console.log('SSH Connection Ready');// 可以在这里执行命令、上传文件等}).on('error', (err) => {console.error('Connection Error:', err);}).on('close', () => {console.log('Connection Closed');}).connect({host: 'your-server-ip',port: 22, // SSH 默认端口username: 'your-username',password: 'your-password', // 或使用 privateKey});

4.通过 SFTP 上传文件到远程服务器。
首先,你需要确定你的本地编译后的文件路径和目标服务器的文件路径。然后,你可以使用 SFTP(SSH File Transfer Protocol)协议来上传文件。以下是一个简单的示例:

  conn.sftp((err, sftp) => {if (err) throw err;const localFile = './local-file.txt'; // 本地文件地址,相对地址基于当前脚本const remoteFile = '/path/to/remote-file.txt';sftp.fastPut(localFile, remoteFile, {}, (err) => {if (err) {console.error('上传失败:', err);} else {console.log('文件上传成功');}conn.end();});});

完整代码如下

const ssh2 = require('ssh2')let conn = new ssh2.Client();connect()
// 上传操作
function connect () {conn.on('ready', () => {conn.sftp((err, sftp) => {sftp.fastPut('./dist.tar.gz', '/opt/web/dist.tar.gz', {}, (err, result) => {//上传完成后开始解压Shell(conn)})})}).connect({host: '10.10.10.10',port: '22',username: 'root',password: 'root'})
}// 解压部署操作
function Shell (conn) {conn.shell((err, stream) => {stream.end(`cd /opt/webtar zxvf ./dist.tar.gzrm -rf dist.tar.gzexit`//进入服务器暂存地址//解压上传的压缩包//删除压缩包//退出).on('data', data => {console.log(data.toString())}).on('close', () => {conn.end()})})
}

有时我们想将打包build这一步操作也放入进入,或者使用的是lerna多包一起打包时,先打包完成再一起上传,这里我们需要用到node插件child_process

child_process 是 Node.js 中的一个核心模块,用于创建和管理子进程。它允许你从 Node.js 程序中启动和控制其他进程(例如 shell 脚本、命令行工具或其他 Node.js 脚本),使得 Node.js 可以与外部程序交互,进行并行处理。

假如我们现在有一个文件./build-test.sh是处理vue或者其他项目打包的脚本,我们可以使用child_process来执行这个脚本,如下:

# build各个微应用
lerna run --scope '{test1,test2,test3}' build:test
# 移动各个包至根目录
mv ./test1/test1 ./
mv ./test2/test2 ./
mv ./test3/test3 ./
# 将各个应用打包输出
tar -czvf dist.tar.gz  ./test1 ./test2 ./test3
rm -rf ./test1 ./test2 ./test3

先将多个包打包后再进行gz压缩,最后输入一个压缩包

对应调用./build-test.sh的脚本如下

  //执行tar.sh脚本获取输出流
let pro = cp.exec('"./build-test.sh"', (error) => {if (error) {console.log(error)}
})pro.stdout.pipe(process.stdout)
pro.on('exit', () => {//打包完成后上传// dosome thing
})

到这里了我们就可以直接调用我们之前写好的connect方法,来进行FTP上传

const cp = require('child_process')
//此包ssh2需要下载
const ssh2 = require('ssh2')//执行tar.sh脚本获取输出流
let pro = cp.exec('"./build-test.sh"', (error) => {if (error) {console.log(error)}
})pro.stdout.pipe(process.stdout)
pro.on('exit', () => {//打包完成后上传// 上传connect()
})let conn = new ssh2.Client();// 上传操作
function connect () {conn.on('ready', () => {conn.sftp((err, sftp) => {sftp.fastPut('./dist.tar.gz', '/opt/web/dist.tar.gz', {}, (err, result) => {//上传完成后开始解压Shell(conn)})})}).connect({host: '10.10.10.10',port: '22',username: 'root',password: 'root'})
}// 解压部署操作
function Shell (conn) {conn.shell((err, stream) => {stream.end(`cd /opt/webtar zxvf ./dist.tar.gzrm -rf dist.tar.gzexit`//进入服务器暂存地址//解压上传的压缩包//删除压缩包//退出).on('data', data => {console.log(data.toString())}).on('close', () => {conn.end()})})
}
http://www.dtcms.com/wzjs/147201.html

相关文章:

  • 湖南人文科技学院搜索引擎优化的技巧
  • 个人做网站怎么备案精准营销推广
  • 阿里巴巴能拿货在家里做的网站网店运营推广实训
  • 衡水高端网站建设网络营销的特点包括
  • 网站维护后期费用seo竞价排名
  • 网站建设具体实施方案广告优化师是做什么的
  • 单页网页设计图片安徽网络关键词优化
  • centos建设网站百度seo排名优化公司哪家好
  • uilike学堂快手seo关键词优化
  • 在本地搭建wordpress东莞百度快照优化排名
  • 怎么开通网站泉州seo培训
  • 委外网站开发合同模板浏览器打开网站
  • 未来销售最好的行业seoul是啥意思
  • 哈尔滨网站建设多少钱站长之家seo工具
  • 做精神科网站手机百度ai入口
  • 承德网站开发关键词搜索引擎工具爱站
  • 有产品做推广,选哪个 网站seo成都培训
  • perl网站建设做seo有什么好处
  • 高端网站建设哪里好广州关键词优化外包
  • 深圳网站建设美橙互联淘宝店铺推广方法
  • 重庆企业网站建设永久免费跨境浏览app
  • 厦门网站做的比较好近期国家新闻
  • 网站建设服务的会计处理360网站推广官网
  • 网页被禁止浏览怎么解决佛山网络排名优化
  • 北海网站建设怎么在网上做广告
  • 做摄影的网站知乎发外链比较好的平台
  • 网站 廉政建设 板块关键词排名seo优化
  • cms做门户网站电脑系统优化软件哪个好用
  • 响应式网页设计实例专业网站优化排名
  • 邯郸做网站的公司英雄联盟韩国