Zum Inhalt springen

CDN

April 2020: Der CDN kommt jetzt auch mit einer REST-API die wie folgt funktioniert:

Bei einer falschen Anfrage kommt (wie auch beim TranslationManager) immer eine Struktur mit success => true|false zurück und dementsprechend ein data oder error array. Die lästigen HTML-Fehler sind dann auch damit verschwunden.

Alle Uploads laufen über /rest/upload.

Image Uploads

Eine erfolgreiche Anfrage an /upload (URLs sind leicht abgeschnitten); Options-Array mit zwei Queries (einmal Quality:80 und einmal Quality:70)

GIF Uploads

Ähnlich wie bei den Videos (der Abschnitt darunter) wird bei GIFs jetzt auch automatisch ein Thumbnail erstellt. Siehe folgende Response-Struktur:

[{"quality":80,"fetch_format":"mp4"}]

Video Uploads

Bei MP4/Webm Uploads gibt es ein besonderes Zusatzfeld: „thumbnail“. Dies liefert den ersten Frame des Videos.

ACHTUNG: Bbitte nur die Options für das Video selbst schicken, das Thumbnail wird automatisch erstellt!

T

Audio Uploads

Audios liefern viel weniger Daten zurück – lediglich msg und data.

Image transformations

Route: /rest/transform-image.
Diese Route bekommt den Original-Filenamen als Parameter und transformiert das Original wie gewünscht mit den Options. Returnt eine simple Response:

Enthält nur ein Items-Array.

Error-Handling

Falls falsche Cloudinary-Options eingegeben wurden, bekommt man eine Error Response mit entsprechender Beschreibung zurück:

Bei Video falsche Options: Video soll als JPG vom CDN returnt werden.

Im Falle dessen, dass der CDN selbst Fehler aufweist (programm-technisch), wird auch ein passender Error geworfen:

AHHHH! Schnell in #onlydev…

Für die Backend-Elfen

Es gibt jetzt auch eine umfassende Testsuite mit allen möglichen Tests, die den CDN auf Herz und Nieren testen. Man kann die Tests im Root-Directory mit

./bin/phpunit

ausführen. Die Tests können mal gut ~50-60 Sekunden brauchen aufgrund der vielen Test-Uploads. Das Folgende sollte ausgegeben werden:

Die Tests schicken eine Anfrage an den CDN, simulieren also eine ganz normale Anfrage an den CDN von außen (z.B. Riddle!)

Sollte hier mal was schief gehen, sollte auch eine passende Test-Fehlernachricht ausgegeben werden, ich (Philipp) kann aber in jedem Fall helfen.
BEST USE CASE FÜR DIE TESTS: Vor jedem Commit beim CDNM die Testsuite durchlaufen lassen und damit sicherstellen, dass man nichts zerstört hat. Bei grundlegenden Änderungen müssen die Tests abgeändert werden.