Skip to content

Latest commit

 

History

History
86 lines (65 loc) · 3.05 KB

File metadata and controls

86 lines (65 loc) · 3.05 KB
name shz-al
description Upload, fetch, update, or delete text/binary content via {{BASE_URL}}, a curl-friendly pastebin. Use when you need a quick public URL for sharing long output, hosting a small file, shortening a URL, or rendering markdown as HTML.

shz.al

A pastebin hosted on Cloudflare Workers at {{BASE_URL}}. Every operation is plain HTTP and works with curl. Random paste names appear bare (e.g. abcd); custom names are returned with a leading ~ (e.g. ~hitagi).

Upload

curl -Fc='hello, world' {{BASE_URL}}        # text
curl -Fc=@file.png      {{BASE_URL}}        # file
<cmd> | curl -Fc=@-     {{BASE_URL}}        # stdin

Response:

{
  "url": "{{BASE_URL}}/abcd",
  "manageUrl": "{{BASE_URL}}/abcd:<password>",
  "expireAt": "2026-05-21T10:33:06.114Z"
}

Persist manageUrl if the paste may need to be updated or deleted later — it is the only way to authenticate as the owner.

Optional upload fields

  • -Fn=<name> — custom name (≥3 chars, returned prefixed with ~).
  • -Fe=<expire> — expiration: integer/float with unit s/m/h/d (default seconds). E.g. -Fe=30m, -Fe=14d.
  • -Fs=<password> — set a specific management password.
  • -Flang=<lang> — mark for syntax highlighting on the display page.
  • -Fp=1 — private mode: 24-char unguessable random name.

Fetch

curl {{BASE_URL}}/<name>                    # raw content
curl -OJ {{BASE_URL}}/~<name>               # save with server filename
curl {{BASE_URL}}/m/<name>                  # JSON metadata (size, dates, …)
curl -I {{BASE_URL}}/<name>                 # HEAD only

Append ?a for Content-Disposition: attachment, ?mime=<mime> to override the response Content-Type, or append .<ext> to the path to set Content-Type by extension.

Update / delete

curl -X PUT    -Fc='new content' <manageUrl>
curl -X DELETE                   <manageUrl>

PUT accepts the same fields as upload; e recalculates expiration from now.

Other URL forms

  • /d/<name> — display code with syntax highlighting. Append ?lang=<lang> to override the highlighting language.
  • /a/<name> — render a markdown paste as HTML (GitHub-flavored Markdown + MathJax).
  • /u/<name> — redirect to the URL stored in the paste (URL shortener).

Limitations

  • Default expiration is {{DEFAULT_EXPIRATION}}, max {{MAX_EXPIRATION}}. Pastes are deleted on expiry.
  • Max upload size is {{R2_MAX_ALLOWED}}.
  • A single request body is capped at 100 MB by Cloudflare (you get HTTP 413 Payload Too Large back, returned by the platform before the worker runs). Files larger than 100 MB therefore cannot be sent via a single curl -Fc=@… — use the web UI at {{BASE_URL}} or the pb CLI (see scripts/), both of which split large files automatically.
  • Treat the service as ephemeral storage — do not rely on it for archival.

Full docs

  • {{BASE_URL}}/doc/curl.md — comprehensive curl guide.
  • {{BASE_URL}}/doc/api.md — HTTP API reference.