Repolode
orhun

orhun/rustypaste

一款用 Rust 编写的极简自托管文件上传与 pastebin 服务,文件直接存于本地文件系统,无需数据库。

Star
1,213
Fork
94
未关闭 Issue
19
最近提交
3天前

这是什么?

Rustypaste 可以通过 curl 等 HTTP 工具上传文件,并返回一个可分享的短链接,也支持 URL 缩短以及让服务器从远程地址拉取文件。文件存放在本地文件系统中,不需要数据库,项目以单个二进制文件和 Docker 镜像的形式发布。

服务提供多项可选的控制功能:文件名可以随机生成(宠物式名称、字母数字字符串或随机后缀),链接可以自动过期,过期文件可按计划删除。一次性链接只能被访问一次,文件还可以设置密码保护,密码使用 Argon2id 哈希存储。此外支持 Bearer 或 Basic 认证令牌、受删除令牌保护的 DELETE 接口,以及可选的文件列表接口。

配置通过 TOML 文件完成,并支持热重载。MIME 类型根据扩展名推断,可以覆盖或加入黑名单;文本类类型统一以纯文本返回,以避免脚本执行。还可以自定义首页,例如放置 HTML 上传表单。

核心功能

  • 01支持通过 curl 等 HTTP 方式上传,返回可分享的短链接
  • 02使用文件系统存储,无需数据库
  • 03可选的随机文件名、自动过期与一次性链接
  • 04基于 Argon2id 哈希的文件密码保护
  • 05支持认证令牌与受令牌保护的 DELETE 接口
  • 06MIME 类型自动识别,可覆盖与黑名单过滤
  • 07TOML 配置支持热重载,并提供 Docker 镜像

适用场景

  • 在自己的机器或 VPS 上搭建私有 pastebin 或文件分享服务
  • 分享截图等需要自动过期的临时文件
  • 生成只能打开一次的一次性下载链接
  • 无需第三方服务即可分享带密码保护的文件

快速上手

  1. 1

    使用 Cargo 从 crates.io 安装

    cargo install rustypaste
  2. 2

    在工作目录中创建 config.toml(参见仓库中的 config.toml),然后启动服务器

    rustypaste
  3. 3

    向运行中的服务器上传文件

    curl -F "file=@x.txt" "<server_address>"

使用前须知

  • 文件存储在本地文件系统中且没有数据库,适合单机自托管。

收录于专题

标签

#file-sharing#pastebin#file-upload#self-hosted#rust#url-shortener#file-upload-server#file-upload-service#file-uploading#hacktoberfest

常见问题

rustypaste 是什么?
一款用 Rust 编写的极简自托管文件上传与 pastebin 服务,文件直接存于本地文件系统,无需数据库。 Rustypaste 可以通过 curl 等 HTTP 工具上传文件,并返回一个可分享的短链接,也支持 URL 缩短以及让服务器从远程地址拉取文件。文件存放在本地文件系统中,不需要数据库,项目以单个二进制文件和 Docker 镜像的形式发布。
rustypaste 可以免费使用吗?用的什么许可证?
rustypaste 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
rustypaste 还在维护吗?
活跃维护中。rustypaste 最近一次提交是在 2026年11月4日。
rustypaste 适合用来做什么?
在自己的机器或 VPS 上搭建私有 pastebin 或文件分享服务 分享截图等需要自动过期的临时文件 生成只能打开一次的一次性下载链接 无需第三方服务即可分享带密码保护的文件
rustypaste 怎么安装和运行?
使用 Cargo 从 crates.io 安装: cargo install rustypaste 在工作目录中创建 config.toml(参见仓库中的 config.toml),然后启动服务器: rustypaste 向运行中的服务器上传文件: curl -F "file=@x.txt" "<server_address>"
在哪里获取 rustypaste?
源代码和安装说明在 GitHub 上:https://github.com/orhun/rustypaste

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目