跨设备传个文件、转一段文本,是经常要处理的事。为这个专门装软件不划算,用聊天工具传又有大小和有效期上的顾虑。FileCodeBox(文件快递柜)把分享做成了快递柜的样子:寄件的人存一个口令,收件的人凭口令取件,文件可以限制存取次数和有效期,双方都不用注册登录。
![图片[1]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/073a372eab66e6e1-23-02-21-1.png?)
具备的能力
- 技术栈偏轻量:Fastapi+Sqlite3+Vue2+ElementUI,单容器就能跑。
- 上传方式是复制粘贴、拖拽选择,文本和文件都支持。
- 口令分享:随机口令存取文件,可自定义次数和有效期。
- 防爆破:错误次数限制;防滥用:按 IP 限制上传次数。
- 管理面板能查看所有文件、删除文件。
- 存储引擎可扩展:自带本地文件流和阿里云 OSS,可在 storage 文件里自行新增。
- docker 一键部署。
Docker 部署
AMD64 架构的机器,一条命令:
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:latest
ARM 机器只有镜像 tag 的差别:
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:arm
数据挂载在 /opt/FileCodeBox/。第一次安装时,后台地址和初始密码只在容器日志里,用这条命令查看:
docker logs filecodebox
后台要显示本地文件,得把服务器上的文件移动到 /opt/FileCodeBox/data/locals 目录,否则列不出来。1.6 版本改动比较大,升级后出问题可以尝试清空 /opt/FileCodeBox 目录再装。
日常更新的流程是先停删容器,再按原参数重新拉起:
// 停止容器并删除
docker stop filecodebox && docker rm filecodebox
// 重新运行容器
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:latest
界面预览
暗黑模式
![图片[2]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/37c8ac8346283ffc-23-02-21-1.png?)
![图片[3]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/2a6714d9b4e36cfe-23-02-21-1.png?)
寄件
![图片[4]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/17da65e0feaff3bd-23-02-21-1.png?)
![图片[5]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/599fe55ac691a420-23-02-21-1.png?)
![图片[6]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/0d0255093bd84862-23-02-21-1.png?)
取件
![图片[7]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/2b1d2641a0df8650-23-02-21-1.png?)
![图片[8]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/0dd541540499f6b7-23-02-21-1.png?)
![图片[9]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/2212d2f2ee72a517-23-02-21-1.png?)
管理面板
![图片[10]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/8c0db2c10b5c792f-23-02-21-1.png?)
![图片[11]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/5490e14d5f99be6d-23-02-21-1.png?)
![图片[12]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站](https://i1.img.azhai.de/upload/48f9d1069373a989-23-02-21-1.png?)
配置文件
需要改配置时,把文件命名为 .env 放到 /opt/FileCodeBox/ 目录下,重启容器即可生效。不走 Docker 的话,要在项目同目录下先新建 data 文件夹,再在里面创建 .env。全部可选项如下:
# 端口
PORT=12345
# Sqlite数据库文件
DATABASE_URL=sqlite+aiosqlite:///database.db
# 静态文件夹
DATA_ROOT=./static
# 静态文件夹URL
STATIC_URL=/static
# 开启上传
ENABLE_UPLOAD=True
# 错误次数
ERROR_COUNT=5
# 错误限制分钟数
ERROR_MINUTE=10
# 上传次数
UPLOAD_COUNT=60
# 上传限制分钟数
UPLOAD_MINUTE=1
# 删除过期文件的间隔(分钟)
DELETE_EXPIRE_FILES_INTERVAL=10
# 管理地址
ADMIN_ADDRESS=admin
# 管理密码
ADMIN_PASSWORD=admin
# 文件大小限制,默认10MB
FILE_SIZE_LIMIT=10
# 网站标题
TITLE=文件快递柜
# 网站描述
DESCRIPTION=FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件,图片,视频,音频,压缩包等文件
# 网站关键词
KEYWORDS=FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件,图片,视频,音频,压缩包等文件
# 存储引擎
STORAGE_ENGINE=filesystem
# 如果使用阿里云OSS服务的话需要额外创建如下参数:
# 阿里云账号AccessKey
KeyId=阿里云账号AccessKey
# 阿里云账号AccessKeySecret
KeySecret=阿里云账号AccessKeySecret
# 阿里云OSS Bucket的地域节点
OSS_ENDPOINT=阿里云OSS Bucket的地域节点
# 阿里云OSS Bucket的BucketName
BUCKET_NAME=阿里云OSS Bucket的BucketName
前端做得比较简陋,如果需要自己的界面,可以用项目带的接口文档做二次开发。开源地址:https://github.com/vastsa/FileCodeBox
踩坑与注意
上传稍大的文件报 413 Request Entity Too Large,多半是反向代理拦的,不是应用本身。在主机的 nginx.conf 里找到 http{},加入 client_max_body_size 10m; 再重启 nginx。另外项目开源仅供学习,不要用于违法用途,自建部署时建议保留原始项目地址。

















暂无评论内容