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
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