4个版本 (2个重大更新)

0.13.2 2022年3月27日
0.12.0 2021年10月20日
0.10.1 2021年8月17日
0.10.0 2021年7月26日

数据库接口中排名1422

ISC许可证

455KB
28K SLoC


_ __ __ _ ___| |_ ___ _ __
| '_ \ / _` / __| __/ _ \| '__|
| |_) | (_| \__ \ || (_) | |
| .__/ \__,_|___/\__\___/|_|
|_|

希望不会让人失望的粘贴板

描述
===========

牧师诞生于对其他粘贴板及其不足的挫败感

- 需要外部数据库,设置起来很麻烦。
- mime类型解析非常不可靠,导致
返回的文件带有错误的mime类型
- 在浏览器中不会显示文件,只会提示下载

牧师试图做得更好

- 确保content-disposition头设置为inline以在浏览器中显示
- 只在需要的地方干预mime类型
- 将所有text/* mime类型设置为text/plain以避免内联
渲染如html等,从而注入外部资源。
- 文件扩展名是供人类柔软的
- 尝试根据mime类型猜测扩展名
但只有绝对确定它是正确的
- 文件扩展名可以设置为用户想要的任何内容,
在访问粘贴时将被忽略。
- 设置简单,单个二进制文件,无外部依赖
- 发布的二进制文件是静态部署的,提供了容器镜像。
- 使用内嵌数据库sled来存储粘贴元数据。
- 默认编译了各种模板,如这个页面
但可以通过提供外部文件进行自定义。

安装
============

要使用docker或podman运行牧师

podman run -p 80:8000 -v <storage path>:/storage kube.cat/cocainefarm/pastor:latest

要使用二进制文件运行牧师

curl -Lo pastor https://gitlab.com/api/v4/projects/17469937/packages/generic/pastor/0.13.0/pastor_amd64_static
chmod +x pastor
ROCKET_STORAGE_DIR=<storage path> ./pastor

用法
=====

文件
-----
上传

上传文件
-----------------------------------------------------------------------------------
$ curl -F [email protected] [email protected] https://{{ url }}/
https://{{ url }}/picturedsalters aloofgremlins
-----------------------------------------------------------------------------------
第二个字符串是用于修改或删除上传所需的令牌。
验证。

检索

检索文件
-----------------------------------------------------------------------------------
GET https://{{ url }}/picturedsalters
-----------------------------------------------------------------------------------

使用语法高亮查看文件
-----------------------------------------------------------------------------------
GET https://{{ url }}/picturedsalters?lang=rust
GET https://{{ url }}/picturedsalters?lang=auto (尝试检测)
-----------------------------------------------------------------------------------

删除

删除文件
-----------------------------------------------------------------------------------
$ curl -X DELETE https://{{ url }}/picturedsalters?token=aloofgremlins

GET https://{{ url }}/delete/picturedsalters?token=aloofgremlins
-----------------------------------------------------------------------------------

过期时间
======

文件在基于以下公式的计算时间后过期

min_age + (-max_age + min_age) * (size / max_size - 1)^3

其中min_age为5天,max_age为365天,最大大小为512MiB。


350 |.
| ..
| ..
300 |- ..
| ..
250 |- .
| ..
| ..
200 |- ..
| ..
| ..
150 |- ...
| ...
| ...
100 |- ...
| ....
50 |- ......
| ......
| ............................
0 +------------|-------------|------------|-------------|------------|-+
0 100 200 300 400 500 MiB

GUI
=====

图形用户界面可在以下网址找到:https://{{ url }}/gui


源代码
=====

源代码可在以下网址找到:https://gitlab.com/cocainefarm/pastor

依赖项

~28–60MB
~1M SLoC