从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障。在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/transfer
cd /opt/transfer
npm 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 id
administrator: 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的存储空间
此时,只剩下第一存储空间的信息了
至此,本文也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。
如果您有任何疑问或者好的建议,期待你的留言、评论与关注!
今天的文章用文件传输助手怎么用_内网传输软件分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/67533.html