短文を期限付きで共有するための最小実装です。Cloudflare Workers と SQLite-backed Durable Objects を使い、作成者だけが削除できるよう deleteToken を発行します。
- 共有作成:
POST /api/newでtextとttlSecondsを受け取り、viewUrlとdeleteTokenを返す(削除URLは発行しない) - 閲覧:
GET /s/:idで表示とコピー。期限切れは 410、存在しない場合は 404 - 削除:
POST /api/deleteにidとdeleteTokenを送ると削除 ttlSecondsは60..604800に丸め(未指定は 600)deleteTokenは作成者のみが保持し、共有リンクには含めない
/にアクセスして本文と期限を入力し、「共有リンクを作成」を押す- 表示された共有URLを相手に渡す
- 削除は同じ画面の「自分の共有一覧」から行う(この端末のみ)
入力:
{ "text": "hello", "ttlSeconds": 600 }出力:
{ "id": "...", "viewUrl": "...", "deleteToken": "...", "expiresAt": 1700000000000 }HTML で表示とコピー。
入力:
{ "id": "...", "deleteToken": "..." }snippets(id, text, expires_at, delete_token, created_at) を SQLite-backed Durable Object に保存。
- 既定: Alarm で「次に期限が来る時刻」に起動し期限切れを削除
- GET 時にも期限切れを検出して削除(lazy cleanup)
wrangler dev
wrangler.tomlsrc/index.ts
MIT