自制文件传输助手,实现数据安全备忘与跨平台传输(优化)
从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障。在2020年我曾基于 fiora 开源项目,以目的为导向重写项目,自制文件传输助手,从而实现数据(信息、图片、文件)的安全传输与存储,可参见博文 《自制微信文件传输助手,实现数据安全传输与存储》。如今,fiora开源项目底层逻辑已改动,过去的部署方式依然无法完成传输助手的搭建。此外,过去版本存在部分功能的缺失,故此,在2022年的今天,博文将对该项目予以二次优化,具体而言:
- 优化部署步骤,降低部署难度;
- 前端新增数据删除功能,简化界面,降低服务器存储负担;
- 新增“文件”类型数据存储与传输功能;
- 完成存储并显示url链接内容;
一、环境准备
本次项目基于node.js、redis和react全栈开发。要运行他, 你需要 Node.js开发环境、 MongoDB 数据库和redis缓存。
宝塔面板可以直接安装: PM2管理器
、MongoDB
、Redis
.安装完成后重启服务器以生效。
二、项目部署
#前端配置:
git clone https://github.com/DXJian/transfer.git -b master /opt/transfercd /opt/transfernpm install -g yarn
yarn install
yarn build:web
echo "JwtSecret=<string>" > .env2
三、配置项目
这一步不可少:
yarn start
放行9200端口
放行6379端口
此时就可以访问http://[ip]:9200
。
1. 注册管理员
[root@HK-GIA transfer]# fiora register [管理员账号] [密码]
[root@HK-GIA transfer]# fiora getUserId [管理员账号]
The userId of [dengxj] is: 61e87394e9f94522a6836636
前往/opt/transfer/packages/config
修改server.ts
// administrator user idadministrator: env.Administrator ? env.Administrator.split(',') : ['61e87394e9f94522a6836636'],
cd /opt/transfer
yarn start
查看有无报错。
2. 引入外部存储方式:
aliyunOSS: {enable: env.ALIYUN_OSS ? env.ALIYUN_OSS === 'true' : true,accessKeyId: env.ACCESS_KEY_ID || 'LTAI5tKLfRXXXXXXXXHdMyTZ',accessKeySecret: env.ACCESS_KEY_SECRET || 'Ts245TE2gawdXXXXXXXXRRP',roleArn: env.ROLE_ARN || 'acs:ram::1807XXXXXX3257:role/transfer',region: env.REGION || 'oss-cn-beijing',bucket: env.BUCKET || 'transferspace',endpoint: env.ENDPOINT || 'transferspace.oss-cn-beijing.aliyuncs.com',},
在RAM 访问控制新建用户页面创建用户,添加管理OSS权限;并基于该用户创建
accessKeyId
及其accessKeySecret
。在RAM 访问控制新建角色页面创建RAM角色,添加管理OSS权限;并获取该角色的
ARN
。
在Bucket 列表选定具体存储桶,依次填入获取的
地区(region)
;桶名(bucket)
;Bucket 域名
(地域节点(Endpoint)) 。切记,endpoint: env.ENDPOINT
处请填写完整Bucket 域名而非地域节点。
3. 设置nginx域名反向代理
为http://localhost:9200
设置反向代理。
4. 设置开机自启:
# install pm2
npm install -g pm2# use pm2 to run transfer
pm2 start yarn --name transfer -- start# view pm2 apps status
pm2 ls# view pm2 transfer logging
pm2 logs transfer# 把已启动服务加到systemd中
pm2 startup #重启,发现之前的服务都已经启动
sudo systemctl reboot
#删除自动启动服务
pm2 unstartup systemd
# use pm2 to stop transfer
pm2 stop id
四、展示效果
在管理员账户没有登陆的时候:
管理员账户登陆后:
移动端:
五、后期维护:数据库管理
# 进入数据库
mongo
# 查询数据库列表
show databases
# 进入数据库
use fiora
# 查询数据表列表
show collections
# 查询数据表内容
db.messages.find()
#删除数据表内信息
db.messages.deleteMany({to: "5f429aa7c0d0e3e0f2d7e499" });
删除第二存储空间的内容,也就是编号为5f429aa7c0d0e3e0f2d7e499的存储空间
此时,只剩下第一存储空间的信息了
至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。
如果您有任何疑问或者好的建议,期待你的留言、评论与关注!
自制文件传输助手,实现数据安全备忘与跨平台传输(优化)相关推荐
- 如何使用网页版微信文件传输助手(图解教程)
微信文件传输助手网页版是一款非常方便的工具,可以帮助我们在电脑和手机之间传输文件,而且不需要电脑登录微信即可传输文件. 下面是具体的操作步骤: 步骤一:打开多御浏览器,点击微信文件传输助手.然后使用微 ...
- HTML5隐藏图片代码,HTML5终极备忘大全(图片版+文字版)
一.前言兼图片备忘 下图是我从testking网站上的Ultimate HTML5 Cheatsheat这篇文章中备忘图片(已大小优化,因为图片较高,故滚动显示). 但是,上面毕竟是图片格式(原图上兆 ...
- 自制微信文件传输助手,实现数据安全传输与存储
从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障.本文将基于 fiora 开源项目,以目的为导向重写项目,自制文件传输 ...
- 让你的「文件传输助手」歇一歇吧,你完全有更实用的备忘录工具选择
有不少粉丝问过我这样一个问题:" 阿虚,我换了不同品牌的手机,有没有办法能把便签的内容迁移到新手机啊?" 而我的回答都是:" 并没有什么办法,只能自己一条条复制粘贴 &q ...
- 备忘: VC++ 自动适用编译两种模式库文件 (DLL, LIB)
为什么80%的码农都做不了架构师?>>> 一个好的程序设计规划总会有属于自己的基础代码库.重用这些代码库,DLL或LIB方式最好的选择之一.在写新的项目或程序是,我们不可能每次 ...
- python第三方库文件传输助手_python实现文件助手中查看微信撤回消息
利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...
- iframe实现页面无刷新上传文件(PHP)----备忘
之前做一个文件上传的,由于那段时间写ajax比较多,所以就想利用Ajax来实现,后来发现,Ajax没法实现文件上传, 后来百度之,这里做个备忘. 提示:利用form表单的target属性和iframe ...
- python第三方库文件传输助手_Python中的第三方模块(itchat)
准备工作: pycharm导入第三方模块的包 1.ctrl+alt+s进入settings,选择Project下的Project Interpreter 2.点击右上角的加号,进入之后搜索qrcode ...
- [转帖]备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改
备忘:CentOS-7 使用systemctl 管理的服务,文件打开数上限1024要改 https://blog.csdn.net/toontong/article/details/50440272 ...
最新文章
- 基于WebGL架构的3D可视化平台—三维设备管理(ThingJS实现楼宇设备管理3D可视化)...
- mysql查询唯一单词_MySql从表中获取唯一单词列表,其中字段中的值用逗号分隔
- 试从微型计算机的硬件组成角度谈谈单片机,单片机原理及应用课后习题参考答案1~6章...
- [转]SpringMVC+Hibernate+Spring 简单的一个整合实例
- ResultSet 结果集
- RabbitMQ安装与初始配置
- 如何将本地jar包放入本地maven仓库和远程私服仓库
- java不能打开串口_java打不开串口,我已经放入那两个文件了,但是报错了,调用不了...
- JSP→JavaWeb简介、Tomcat服务器安装启动测试目录、Tomcat手动创建项目、开发工具MyEclipse与Eclipse配置环境、MyEclipse创建Web程序目录、修改Tomcat端口
- [渝粤教育] 厦门理工学院 模拟电子技术实验 参考 资料
- 超实用的 Nginx 极简教程,覆盖了常用场景(转)
- 【国产MCU移植】看看有没有你需要的,一起来查漏补缺吧!(附已报名的硬件)...
- css 给文字加下划线
- 【算法设计与分析】图搜索算法的应用
- oracle的mins,分钟的英文缩写,10min还是10mins!
- 操作系统:存储器管理(下)
- java.net.SocketException: Too many open files解决方法
- 【Java】基础知识-JAXP解析XML(一)
- C4D骨骼绑定和骨骼动画
- java学习p163