Delta:自托管的文件上传与短链接生成工具
项目介绍
Delta
是一个小巧的自托管项目,结合了文件上传与URL缩短功能。通过简单的 curl
命令,用户可以将文件上传至服务器,并获得一个短链接作为响应。此外,Delta
还支持对长URL进行缩短,并提供自定义短链接、API密钥安全认证、多用户支持、定时删除资源、永久ID生成、自毁链接以及密码保护链接等功能。
项目技术分析
Delta
基于 Express.js
和 Multer
构建,提供了高效的文件上传服务。URL缩短功能则通过自定义算法生成短链接,确保0%的碰撞率。项目还集成了 Redis
作为数据存储,支持多用户和多域名配置。通过 Cron
定时任务,Delta
可以自动删除过期资源,确保服务器资源的有效管理。
项目及技术应用场景
Delta
适用于需要自托管文件上传和URL缩短服务的场景。例如:
- 个人博客或网站:用户可以上传图片、文档等资源,并生成短链接分享给读者。
- 团队协作:团队成员可以通过
Delta
上传文件,并生成短链接进行内部共享。 - 临时文件分享:用户可以上传临时文件,并设置自毁链接或密码保护,确保文件的安全性。
项目特点
- 高效上传:基于
Express.js
和Multer
,提供超快的文件上传体验。 - URL缩短:支持文件和长URL的缩短,并提供自定义短链接功能。
- 安全认证:通过API密钥确保上传和访问的安全性。
- 多用户支持:同一服务器上支持多个用户,每个用户的数据独立存储。
- 定时清理:通过
Cron
定时任务,自动删除过期资源。 - 永久ID:生成的短链接具有永久ID,确保0%的碰撞率。
- 自毁链接:支持设置链接的自动过期时间,确保文件的临时性。
- 密码保护:上传的文件可以设置密码保护,确保只有授权用户可以访问。
- 易于安装和使用:项目提供了详细的安装和配置指南,用户可以轻松上手。
安装与使用
安装步骤
-
克隆项目:
git clone https://github.com/fosslife/delta.git
-
配置文件: 编辑
config.js
文件,配置用户信息、API密钥、域名、上传路径、定时任务等参数。 -
安装依赖:
npm install
-
启动服务:
npm start
使用示例
-
上传文件:
curl -H 'api-key: YOUR_API_KEY' -F file=@filename https://your.domain.url/
-
缩短URL:
curl -H 'api-key: YOUR_API_KEY' -d 'url=http://example.com/' https://your.domain.url/
-
自定义短链接:
curl -H 'api-key: YOUR_API_KEY' -d 'url=http://example.com/' -d 'custom=mylink' https://your.domain.url/
通过 Delta
,您可以轻松实现自托管的文件上传与URL缩短服务,满足各种个性化需求。快来体验吧!