FileCodeBox 文件快递柜:用口令分享临时文件和文本

跨设备传个文件、转一段文本,是经常要处理的事。为这个专门装软件不划算,用聊天工具传又有大小和有效期上的顾虑。FileCodeBox(文件快递柜)把分享做成了快递柜的样子:寄件的人存一个口令,收件的人凭口令取件,文件可以限制存取次数和有效期,双方都不用注册登录。

图片[1]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站

具备的能力

  • 技术栈偏轻量: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最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[3]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站

寄件

图片[4]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[5]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[6]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站

取件

图片[7]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[8]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[9]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站

管理面板

图片[10]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[11]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站
图片[12]-2023最新开源快递柜系统网站 | 匿名口令分享 | 临时文件分享-本站

配置文件

需要改配置时,把文件命名为 .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。另外项目开源仅供学习,不要用于违法用途,自建部署时建议保留原始项目地址。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容