Skip to main content
JGJenks Guo

ドキュメント / how to

画像とファイルをアップロードして使う

Jenks — メディアライブラリ (Cloudflare R2) に写真、動画クリップ、PDF を追加し、コンソール、CLI、MCP または REST から、カバー画像、ギャラリー、証明用ファイル、インライン画像として使います。

メディアライブラリとは

アップロードしたファイルは Cloudflare R2 のバケットに保存され、https://jenksguo.xyz/media/… から配信されます。 対応形式: WebP、JPEG、PNG、GIF、AVIF、SVG の画像、MP4 と WebM の動画、PDF — いずれも最大 25 MB までです。 実際のファイル種別はファイル本体から判定しますので、拡張子を変えても画像のふりはできません。

すべてのファイルには /media/2026/10/acme-workshop-3f9a1c2b7d.webp のような恒久的なアドレスが付きます。末尾の 部分はバイト列のフィンガープリントであるため、そのアドレスが別の内容を指すことはなく、ブラウザは 最長 1 年間キャッシュできます。同じ名前で同一のファイルを再度アップロードすると、既存のコピーが再利用されます。

ファイルはアップロードされた瞬間から公開されます。どのページからもまだ参照されていなくても同様です。すべての訪問者に見られてもよいものだけをアップロードしてください。電話番号付きの履歴書、ID、私的な書類などは決してアップロードしないでください。

コンソールから

  1. https://jenksguo.xyz/admin を開き、上部バーで Media を選びます。
  2. ファイルをページにドラッグする、スクリーンショットを貼り付ける、または Upload を選びます。Optimise photos がオン(デフォルト)だと、写真はまずブラウザ内で 2400 px にリサイズされ WebP に変換されます。たとえば 6 MB のスマホ写真は通常 300~600 KB になります。iPhone の HEIC 写真は、ブラウザが読める場合に変換されます(Safari は対応しています)。
  3. ファイルを選択して alt text(画像が何を示すかを 1 文で)を追加します。スクリーンリーダーや Ask Jenks アシスタントが使用します。

次に、Content エディタからファイルを使用します:

  • Cover image — Details で Choose or upload a cover image を選びます。エントリページの先頭に表示されます。
  • Gallery — Add photo or video で本文の横に表示される項目を追加します。各項目に alt text と任意のキャプションを付けられます。
  • Proof file — proof の行で、クリップのアイコンからアップロード済みの PDF(論文など)を添付します。
  • Inside the text — エディタのツールバーの画像ボタンで画像を挿入できます。画像を本文に直接ドラッグまたは貼り付けることもできます。挿入した画像を選択すると、その alt text を編集できます。

エントリを保存すると、通常どおり変更が公開されます。存在しない /media/… ファイルを参照している場合、エディタは保存を拒否します。

CLI から

jenks admin media upload ~/Pictures/acme-workshop.jpg --alt "Jenks running an AI workshop at Acme"
jenks admin media upload https://example.com/talk-poster.png     # the server fetches it
jenks admin media ls                                            # newest first, with "used by"
jenks admin media alt 2026/10/acme-workshop-3f9a1c2b7d.jpg "New alt text"
jenks admin media rm 2026/10/acme-workshop-3f9a1c2b7d.jpg

CLI はファイルをそのまま(リサイズなし)アップロードします。大きな写真は事前に適切なサイズで書き出してください。次に、出力された url をエントリで参照します:

image: /media/2026/10/acme-workshop-3f9a1c2b7d.jpg
imageAlt: Jenks running an AI workshop at Acme
gallery:
  - src: /media/2026/10/acme-team-0c1d2e3f4a.webp
    alt: The Acme leadership team at the kick-off
    caption: Kick-off, October 2026

AI エージェント(MCP)から

admin MCP サーバーには admin_upload_media、admin_list_media、admin_update_media、 admin_delete_media があります。

  • Local (jenks mcp --admin): 自分のコンピューター上のファイルを path で渡します — ローカルサーバーがエージェントのために読み込みます。
  • Remote (/mcp/admin): filename を添えて、url(取り込む https アドレス)または data(base64)を渡します。

エージェントへの典型的な依頼例: 「~/Desktop/xero-talk.jpg を alt text 'Jenks speaking at Xerocon' でアップロードし、その後 xero-developer-evangelist のカバー画像に設定して。」

REST から

curl -H "Authorization: Bearer $JENKSGUO_ADMIN_TOKEN" \
  -F file=@acme-workshop.jpg -F alt="Jenks running an AI workshop at Acme" \
  https://jenksguo.xyz/api/admin/media

/api/admin/media への GET、PATCH、DELETE は一覧取得、更新、削除です。詳しくは admin API reference を参照してください。

安全に削除する

削除は恒久的です。コンテンツと異なり、ファイルには git の履歴がありません。公開済みコンテンツがまだ使用しているファイルについては、コンソールと API は削除を拒否し、使用箇所を表示します。まず参照を削除するか、壊れた画像になってもよい場合は強制的に削除します。

「used by」チェックは、この環境で最後にデプロイされたコンテンツを読み取ります。dev と production は 1 つのメディアライブラリを共有します(そのため、dev でプレビュー中にアップロードしたファイルは、昇格後もそのまま動作します)。その結果、未昇格の dev コンテンツだけで使用されているファイルは、production のコンソールでは未使用に見えることがあります。

.mdこのページはAIの支援で翻訳されています。正式な肩書は英語のままです。