Obrázky katalogu — R2 + D1 seed (bez admina)
Stav dokumentu: Částečně — krok 1 hotový: migrace
0022, skriptyr2:seed-catalog-starter:*, soubory vscripts/assets/herbs/a zápis v kořenovém README.md § R2. Dál lze přidávat další byliny stejným vzorem (bez/admin).
Cíl: mít u vybraných bylin skutečné náhledy v galerii — objekt v R2 (r2_key) a odpovídající řádek v images (alt, typ, licence, pořadí), bez nutnosti čekat na editor v adminu.
Vstup: README.md § Cloudflare R2 · 22-data-model.md (images) · 30-content-guidelines.md §7 (image_type, licence, zdroj) · šablony migrací migrations/0005_r2_smoke_image.sql, migrations/0022_catalog_r2_seed_three_herbs.sql. Admin upload je popsán v 32-admin.md §9 — není součástí tohoto úkolu.
Související UI backlog (zobrazení patičky photographer / license / source_url na kartě): bezpecnost-a-media-stitky.md §3.
0. Hotový krok 1 (reference)
- Byliny:
medunka-lekarska,hermanek-pravy,meta-peprna. - Konvence klíče:
herbs/<slug>/habitus.jpg(ASCII slug z DB). - Migrace:
0022_catalog_r2_seed_three_herbs.sql—photographer,license,source_urlvyplněné dle Commons; u heřmánku je valt_textupozornění, že Commons snímek je Matricaria recutita, zatímco v katalogu je druh uveden jako Matricaria chamomilla (lze později vyměnit za přesnější fotku). - R2: po aplikaci migrace spusť
npm run r2:seed-catalog-starter:localnebo…:remote. - Atribuce souborů v repu: scripts/assets/herbs/README.md.
1. Jak to funguje (stručně)
- Worker servíruje binárky z R2 na cestě
/media/<r2_key>(segmenty URL-encoded). - Tabulka
images:herb_id,r2_key, volitelněpublic_url(externí),image_type,alt_text,caption,photographer,license,source_url,sort_order, … - Bez admina: soubor do bucketu přes Cloudflare dashboard nebo CLI
wrangler r2 object put; řádek v D1 přes novou migraciINSERT … SELECT id FROM herbs WHERE slug = '…'.
2. Další byliny (doporučený postup)
- Vybrat bylinu s jasně licencovanou fotkou (Commons nebo vlastní) — 30-content-guidelines.md §7.
- Konvence
r2_key: držet se vzoruherbs/<slug>/<role>.jpg(nebo.webp), ASCII, bez mezer. - Nahrát objekt do bucketu
soulofherbs-media(dashboard nebowrangler r2 object put, případně rozšířit npm skript). - Nová migrace
INSERT INTO imagesslicense,source_url,alt_text,image_type(slugy s českým překladem vlabelImageType— vizapp/lib/claim-labels.ts). - Ověření:
d1:apply+ seed R2 +/byliny/<slug>(404 na/media/…= chybí objekt nebo špatný klíč).
Šablona SQL: migrace 0005 (minimální řádek) nebo 0022 (řádek s licencí a autorem).
3. Checklist
- Dohodnutá konvence
r2_keya složkascripts/assets/herbs/+ README s atribucí. - První migrace s více
INSERT(3 byliny) + npm skript pro nahrání do R2. - U kroku 1 vyplněné
alt_text,license,source_url(a fotograf kde šlo). - Dokumentace v kořenovém README § R2 a v tomto souboru.
- Další byliny (rozšíření migrací / dávkové skripty dle potřeby).
4. Akceptace
- U tří bylin z kroku 1 je po nahrání do R2 na kartě vidět obrázek z
/media/herbs/…/habitus.jpg. - Žádná závislost na dokončení admin uploadu pro tento seed.
5. Vazby
- Bezpečnostní štítky / patička obrázku v UI — bezpecnost-a-media-stitky.md.
- Editor a budoucí upload — 32-admin.md §9.