在线体验

OneShare - 即刻分享,如有反馈,请前往页面底部的评论区。


OneShare是什么?

OneShare是一个安全、便捷的文件分享平台。用户无需注册,只需通过简单的取件码即可快速上传和下载文件。


灵感来源

五年前,在学校打印店频繁使用QQ和微信传输文件的安全隐患引发了我的思考。我希望有一个平台,无需登入,直接通过取件码进行文件传输,从而提高安全性和使用的便捷性。

PS:我去,现在全部都是加老板微信发文件。但是想法诞生与项目实用场景无关。


项目特点

- 匿名使用:用户无需注册账号,上传文件后获取唯一取件码,通过取件码和密码即可下载。
- 全球可访问:前端使用Vue3,部署在Vercel平台,确保全球内的快速访问。
- 安全保障:五重校验机制,全程HTTPS加密,保障文件和数据的安全。
- 高效与弹性:后端采用Flask和阿里云Serverless架构,支持自动扩缩容,应对负载高峰。


技术亮点

- 前端:Vue3 + Element Plus,支持PWA,提供高效的响应式界面,用户体验流畅。
- 后端:Flask + RESTful,后端无状态,支持水平扩展,确保系统的可扩展性和稳定性。
- 存储:阿里云OSS对象存储,提供高效可靠的文件存储,支持细粒度访问控制。
- 数据库:SQLite3,用于管理文件元数据,支持简单易用的事务和锁定机制。
- 云计算:深度融合阿里云服务,并利用API网关、日志服务和GitHub Action实现高效运维和自动化部署。


使用方法

1. 上传文件:无需注册,直接上传文件并获取取件码。
2. 分享取件码:将取件码发送给需要下载文件的人。
3. 下载文件:输入取件码和密码,快速下载文件。


服务配额

- 用途:OneShare主要为个人使用,欢迎体验,但并非商业或公益项目。
- 存储限制:同时只允许存储1000个文件,上传总流量1G,下载总流量3G。
- 保存时间:文件至少保存24小时,有3次下载机会,动态限速。


最佳实践?

- 分布式架构:前端-后端-存储端-数据库,各端分离,独立运行。数据库文件托管在阿里云文件存储NAS,通过NFSv4协议挂载到后端。
- 性能与成本兼具:性能上,各节点均支持扩展;成本上,前端使用Vercel免费套餐,后端-存储-数据库均按量使用,API网关有免费额度。
- 冷启动优化:阿里云函数计算FC3.0最低支持0台实例运行,新开实例会进行冷启动,使用辅助函数大幅优化冷启动时间。
- 多重校验与强加密:总计5重校验保护文件和后端安全,文件上传到对象存储后自动进行MD5校验,AES256加密。


未来工作

- 开源?:考虑中,部署非常复杂,且做不到一键部署。
- 二维码:上传完成后,提供一个二维码,增加分享便利性。
- 下载次数:自定义下载次数,或提供紧急下载。
- 下载信息:提供上一次的下载信息,如IP、时间等。
- 端到端加密:已有思路,但这意味着彻底失去审核。
- 多云架构:考虑再整个AWS、Azure、CloudFlare版。