API 参考

GET /

返回首页。

GET /<name>[.<ext>]/<name>/<filename>[.<ext>]

获取名为 <name> 的粘贴内容。默认情况下,它将返回粘贴的原始内容。

Content-Type 头信息会被设置为 text/plain;charset=UTF-8。如果指定了 <ext>,服务工作线程会根据 <ext> 推断 MIME 类型并更改 Content-Type。此方法接受以下查询字符串参数:

Content-Disposition 头信息默认设置为 inline。但可以通过 ?a 查询字符串进行覆盖。如果粘贴内容上传时带有文件名,或者在给定的请求 URL 中设置了 <filename>Content-Disposition 会追加 filename* 来指示文件名(如果 <ext> 存在则包含 <ext>)。

示例: GET /abcd?lang=jsGET /abcd?mime=application/json

如果发生错误,服务工作线程将返回不同于 200 的状态码:

使用示例:

$ curl https://shz.al/i-p-
https://web.archive.org/web/20210328091143/https://mp.weixin.qq.com/s/5phCQP7i-JpSvzPEMGk56Q

$ curl https://shz.al/~panty.jpg | feh -

$ firefox 'https://shz.al/kf7z?lang=nix'

$ curl 'https://shz.al/~panty.jpg?mime=image/png' -w '%{content_type}' -o /dev/null -sS
image/png;charset=UTF-8

GET /<name>:<passwd>

返回用于编辑名为 <name> 且密码为 <passwd> 的粘贴内容的网页。

如果发生错误,服务工作线程将返回不同于 200 的状态码:

GET /u/<name>

重定向到名为 <name> 的粘贴内容中记录的 URL。

如果发生错误,服务工作线程将返回不同于 302 的状态码:

使用示例:

$ firefox https://shz.al/u/i-p-

$ curl -L https://shz.al/u/i-p-

GET /a/<name>

返回从名为 <name> 的粘贴内容中存储的 Markdown 文件转换而来的 HTML。Markdown 转换遵循 GitHub Flavored Markdown (GFM) 规范,由 remark-gfm 提供支持。

语法高亮由 prims.js 提供支持。LaTeX 数学公式由 MathJax 提供支持。

如果发生错误,服务工作线程将返回不同于 200 的状态码:

使用示例:

# 标题 1
这是 `test.md` 的内容

<script>
alert("脚本应被移除")
</script>

## 标题 2

| abc | defghi |
:-: | -----------:
bar | baz

**粗体**,`等宽字体`,*斜体*,~~删除线~~,[链接](https://github.com)

- A
 - A1
 - A2
- B

![短裤](https://shz.al/~panty.jpg)

1. 第一项
2. 第二项

> 引用

$$
\int_{-\infty}^{\infty} e^{-x^2} = \sqrt{\pi}
$$

$ curl -Fc=@test.md -Fn=test-md https://shz.al

$ firefox https://shz.al/a/~test-md

POST /

上传你的粘贴内容。它接受表单数据中的参数:

POST 方法默认返回一个 JSON 字符串,如果没有发生错误,示例如下:

{
    "url": "https://shz.al/abcd",
    "admin": "https://shz.al/abcd:w2eHqyZGc@CQzWLN=BiJiQxZ",
    "expire": 100,
    "isPrivate": false
}

字段说明:

如果发生错误,服务工作线程将返回不同于 200 的状态码:

使用示例:

$ curl -Fc="kawaii" -Fe=300 -Fn=hitagi https://shz.al  # 上传一些文本
{
  "url": "https://shz.al/~hitagi",
  "admin": "https://shz.al/~hitagi:22@-OJWcTOH2jprTJWYadmDv",
  "isPrivate": false,
  "expire": 300
}

$ curl -Fc=@panty.jpg -Fn=panty -Fs=12345678 https://shz.al   # 上传一个文件
{
  "url": "https://shz.al/~panty",
  "admin": "https://shz.al/~panty:12345678",
  "isPrivate": false
}

# 因为 `curl` 会将某些字符作为字段分隔符,如果字段包含分号或逗号,则这些字段应该用双引号引起来
$ curl -Fc=@panty.jpg -Fn='"hi/hello;g,ood"' -Fs=12345678 https://shz.al
{
  "url": "https://shz.al/~hi/hello;g,ood",
  "admin": "https://shz.al/~hi/hello;g,ood:QJhMKh5WR6z36QRAAn5Q5GZh",
  "isPrivate": false
}

PUT /<name>:<passwd>

更新名为 <name> 且密码为 <passwd> 的粘贴内容。它接受表单数据中的参数:

PUT 方法的返回结果与 POST 方法相同。

如果发生错误,服务工作线程将返回不同于 200 的状态码:

使用示例:

$ curl -X PUT -Fc="kawaii~" -Fe=500 https://shz.al/~hitagi:22@-OJWcTOH2jprTJWYadmDv
{
  "url": "https://shz.al/~hitagi",
  "admin": "https://shz.al/~hitagi:22@-OJWcTOH2jprTJWYadmDv",
  "isPrivate": false,
  "expire": 500
}

$ curl -X PUT -Fc="kawaii~" https://shz.al/~hitagi:22@-OJWcTOH2jprTJWYadmDv
{
  "url": "https://shz.al/~hitagi",
  "admin": "https://shz.al/~hitagi:22@-OJWcTOH2jprTJWYadmDv",
  "isPrivate": false
}

DELETE /<name>:<passwd>

删除名为 <name> 且密码为 <passwd> 的粘贴内容。全局同步删除操作可能需要几秒钟。

如果发生错误,服务工作线程将返回不同于 200 的状态码:

使用示例:

$ curl -X DELETE https://shz.al/~hitagi:22@-OJWcTOH2jprTJWYadmDv
粘贴内容将在几秒钟内被删除

$ curl https://shz.al/~hitagi
未找到