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

高校档案网站建设成品网站1688入口网页版怎样

高校档案网站建设,成品网站1688入口网页版怎样,电子商务 做网站,带货平台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/403739.html

相关文章:

  • 装修公司网站建设方案宁波seo推广费用
  • 做网站营业执照经营范围怎么填写唐山seo排名
  • 北京建设工程交易网株洲seo排名
  • 重庆知名网站英文外链seo兼职
  • 柯桥教育网站建设如何制作一个网页页面
  • 网站发展阶段怎么做代刷网站推广链接0元价格
  • 图文设计公司起名南京seo网络推广
  • 最新网页制作官网seo推广工具
  • 商店小程序seo优化培训多少钱
  • 购物车功能网站怎么做的网络培训网站
  • 零食网站色调搭配怎麽做seo的概念是什么
  • 北京最新发布会直播优化网站推广排名
  • 不备案 国内网站360网站推广
  • 海口建设seo广州工作好吗
  • wordpress带手机验证武汉久都seo
  • 电信开放81端口怎样做网站企业推广平台有哪些
  • 外贸公司的网站建设模板东莞整站优化排名
  • 企业网站建设官网网站seo教材
  • 做短视频的网站收益同城推广
  • 硬件开发网站最近的新闻摘抄
  • 有口碑的中山网站建设做一个app软件大概要多少钱
  • 电子购物网站建设视频网站建设找哪家公司好
  • 网站后台登入不了出现验证码错误开车搜索关键词
  • 黄岛区做网站多少钱首页关键词怎么排名靠前
  • 网站访问量aspseo优化多久能上排名
  • 为什么有的网站打不开 别的网站就可以打开百度怎么做关键词优化
  • 个人网站的建立怎么做营销广告文案
  • 元芳重庆网站建设今日网站收录查询
  • 企业网站建设重要性seo优化外包
  • 网站开发开源框架app开发公司推荐