从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障。本文将基于 fiora 开源项目,以目的为导向重写项目,自制文件传输助手,从而实现数据(信息、图片、文件)的安全传输与存储。



本文入选 1024博客专家TOP 50 榜单,在这里诚挚的感谢大家一直以来对我的支持与帮助!


一、环境准备

fiora是基于node.js和react全栈开发的聊天室。要运行 Fiora, 你需要 Node.js(v10 LTS版本, 例如10.6.3) 开发环境和 MongoDB 数据库。

  • 安装 Node.js

    • 官网 http://nodejs.cn/download/
    • 更推荐使用 nvm 安装 Node.js
      • 安装 nvm https://github.com/nvm-sh/nvm#install--update-script
      • 通过 nvm 安装 Node.js https://github.com/nvm-sh/nvm#usage
  • 安装 MongoDB(直接在宝塔面板安装MongoDB)
    • 官网 https://docs.mongodb.com/manual/installation/#install-mongodb
安装Nodejs
#Debian/Ubuntu系统
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt install -y git nodejs #CentOS系统
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install nodejs git -y

二、配置项目

fiora是基于node.js和react全栈开发的聊天室。从功能角度上而言与文件传输助手相区别,因此需要重写项目。

重写项目下载地址:http://file.dxj.im/transfer-master.zip

如果使用的是原版开源代码,注意禁止注册功能:

修改 config/server.ts, 将 disableRegister 选项设置为 true,重启服务器生效。


可以参考的配置文档:

  1. 项目原文档
  2. 第三方文档

三、项目部署

#拉取源码#安装依赖,这里不能用npm,需要用yarn来安装
npm i -g yarn
yarn
#构建
npm run build
#转移产物
npm run move-dist
#注册一个账号
npx ts-node bin/register.ts --username [新用户名] --password [用户密码]
#启动
npm start


运行后打开ip:9200,登陆账号:
可以看SSH客户端运行日志,获取自己的userId。

接下来再将自己的账号设置成管理员,先使用Ctrl+C断开运行。

export Administrator=5f4299a05c4596d1d658025f Port=9200
nohup npm start &

注意:在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用。

此时就可以访问ip:9200。此时可以通过nginx域名反代的形式部署域名。

站点配置——配置文件:

location / {proxy_pass http://127.0.0.1:9200;proxy_set_header Host             $host;proxy_set_header X-Real-IP        $remote_addr;proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-Forward-Proto http;proxy_set_header X-Nginx-Proxy true;proxy_http_version 1.1;proxy_redirect off;
}

四、设置开机自启:

以宝塔面板为例:

#先给node做个软连接,不然后面会启动失败
ln -sf $(which node) /usr/bin/node#新建systemd配置文件,将以下代码一起复制到SSH运行
cat > /etc/systemd/system/fiora.service <<EOF
[Unit]
Description=fiora
After=network.target
Wants=network.target[Service]
Type=simple
PIDFile=/var/run/fiora.pid
ExecStart=$(command -v npm) start
WorkingDirectory=/www/wwwroot/i.dxj.im
Environment=NODE_ENV=production Administrator=$Administrator Port=$Port
User=www
Restart=on-failure
RestartSec=42s[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start fiora
systemctl enable fiora

五、展示效果

在管理员账户没有登陆的时候:

管理员账户登陆后:

移动端:

六、后期维护:记录的删除

# 进入数据库
mongo
# 查询数据库列表
show databases
# 进入数据库
use fiora

# 查询数据表列表
show collections
# 查询数据表内容
db.messages.find()

#删除数据表内信息
db.messages.deleteMany({to: "5f429aa7c0d0e3e0f2d7e499" });

删除第二聊天室的内容,也就是编号为5f429aa7c0d0e3e0f2d7e499的聊天室


此时,只剩下第一聊天室的信息了


至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。


如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

自制微信文件传输助手,实现数据安全传输与存储相关推荐

  1. Android传输助手,电脑手机传输助手

    电脑手机传输助手app是一款帮助用户进行手机文件传输的软件,让用户能够轻松将手机中的文件传输至电脑中,方便用户使用:用户通过软件能够在线对自己手机中的各个文件进行管理,了解手机中各文件信息,从而能够轻 ...

  2. 自制文件传输助手,实现数据安全备忘与跨平台传输(优化)

    从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障.在2020年我曾基于 fiora 开源项目,以目的为导向重写项目,自 ...

  3. python第三方库文件传输助手_python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  4. 微信文件传输助手文件存储位置问题

    记录微信中文件传输助手文件存储位置问题. 参考手机型号:华为Mate10. 文件位于:Android\data\com.tencent.mm\MicroMsg\Download 上述位置是文档的位置, ...

  5. 微信文件传输助手网页版

    链接:微信文件传输助手网页版 打开链接后即可扫码登录,从而无需登录pc端微信实现文件传输.但大文件传输会受限,无法发送超过1g的文件 参考文献:微信文件传输助手上线网页版!

  6. 微信文件传输助手文件夹在哪?一起来找找

    微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很多童鞋都找不到微信文件传输助手文件夹在哪,就让我们一起找找吧 1.先说说手机微信文件传输助手文件夹在哪吧 文件夹路径为/Ten ...

  7. Python 的itchat 的微信文件传输助手和朋友性别,签名,所在城市分析

    itchat 是python的微信类,可以用pip install itchat 安装,也可以用conda insatll itchat安装 开发环境为Windows10+Anaconda3(pyth ...

  8. python发送文件传输助手,教你用Python通过微信来控制电脑摄像头

    如果说强大的标准库奠定了Python发展的基石,丰富的第三方库则是python不断发展的保证.今天的Python学习教程就来通过itchart库来实现通过微信对电脑的一些操作. 1.安装库 安装itc ...

  9. 如何使用网页版微信文件传输助手(图解教程)

    微信文件传输助手网页版是一款非常方便的工具,可以帮助我们在电脑和手机之间传输文件,而且不需要电脑登录微信即可传输文件. 下面是具体的操作步骤: 步骤一:打开多御浏览器,点击微信文件传输助手.然后使用微 ...

最新文章

  1. php map添加元素,html map标签怎么用
  2. BBC News 2012-02-07
  3. 移动硬盘由于IO设备错误,无法运行此项请求文件怎样恢复
  4. Machine Learning-模型评估与调参(完整版)
  5. io多路复用的原理和实现_IO多路复用的三种机制:select 、poll 、epoll
  6. C++刷称号——2707: 素数与要素
  7. uoj#38. 【清华集训2014】奇数国(线段树+数论)
  8. 这篇带你深入理解SpringBoot中的自动装配(好文精读)
  9. C语言实现的RSA算法程序(使用GMP)
  10. java的迭代器详解
  11. linux 深度攻略 pdf,万字深度详细分析 全民主公深度攻略
  12. 前端福利 - h5源码一键下载
  13. JS05-页面的打断点(检验程序的执行步骤)
  14. pwnable.kr之mistake
  15. 判断页面是否在微信或者企业微信环境下
  16. 转载:做人开心最重要
  17. PhysX3.4文档(3) --Geometry
  18. HC-SR04超声波模块的使用(stm32f103c8t6/HAL)(超详细)
  19. Dataset的用法简析
  20. ps知识点1-快捷键、文件新建与存储、移动工具、矩形选框、套索工具、快速选择、魔棒

热门文章

  1. Comparator的compare方法如何定义升序降序
  2. 资源服务器搭建以及使用
  3. 小鹏G3 2020款到底有多智能
  4. linux 微信不能发图片大小,解决微信插件wxparse图片大小不能改变的问题
  5. 全国铁路全面迎接客流高峰到来
  6. golang 并发编程
  7. charCodeAt() 和charAt()
  8. Xamarin.Android开发及常见问题的解决
  9. 基于 python pulp 库求解船舶泊位调度线性规划问题
  10. 基于51单片机的超声波测距_液位检测_温度检测protues仿真