{"id":81,"date":"2019-11-08T13:53:47","date_gmt":"2019-11-08T13:53:47","guid":{"rendered":"https:\/\/intern.quizu.de\/?p=81"},"modified":"2020-04-23T08:34:23","modified_gmt":"2020-04-23T08:34:23","slug":"cdn","status":"publish","type":"post","link":"https:\/\/intern.quizu.de\/?p=81","title":{"rendered":"CDN"},"content":{"rendered":"\n<p>April 2020: Der CDN kommt jetzt auch mit einer REST-API die wie folgt funktioniert:<\/p>\n\n\n\n<p>Bei einer falschen Anfrage kommt (wie auch beim TranslationManager) immer eine Struktur mit success =&gt; true|false zur\u00fcck und dementsprechend ein data oder error array. Die l\u00e4stigen HTML-Fehler sind dann auch damit verschwunden.<br><br><strong>Alle Uploads laufen \u00fcber \/rest\/upload.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Image Uploads<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"364\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.17.47-1024x364.png\" alt=\"\" class=\"wp-image-104\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.17.47-1024x364.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.17.47-300x107.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.17.47-768x273.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.17.47-1536x546.png 1536w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.17.47-2048x728.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Eine erfolgreiche Anfrage an \/upload (URLs sind leicht abgeschnitten); Options-Array mit zwei Queries (einmal Quality:80 und einmal Quality:70)<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">GIF Uploads<\/h3>\n\n\n\n<p>\u00c4hnlich wie bei den Videos (der Abschnitt darunter) wird bei GIFs jetzt auch automatisch ein Thumbnail erstellt. Siehe folgende Response-Struktur:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;{\"quality\":80,\"fetch_format\":\"mp4\"}]<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"301\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-23-at-10.32.13-1024x301.png\" alt=\"\" class=\"wp-image-120\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-23-at-10.32.13-1024x301.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-23-at-10.32.13-300x88.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-23-at-10.32.13-768x226.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-23-at-10.32.13-1536x452.png 1536w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-23-at-10.32.13-2048x603.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Video Uploads<\/h3>\n\n\n\n<p>Bei MP4\/Webm Uploads gibt es ein besonderes Zusatzfeld: &#8222;thumbnail&#8220;. Dies liefert den ersten Frame des Videos. <br><br><strong>ACHTUNG: <\/strong>Bbitte nur die Options f\u00fcr das Video selbst schicken, das Thumbnail wird automatisch erstellt!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.38.08-1024x300.png\" alt=\"\" class=\"wp-image-107\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.38.08-1024x300.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.38.08-300x88.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.38.08-768x225.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.38.08-1536x450.png 1536w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-20.38.08-2048x600.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>T<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Audio Uploads<\/h3>\n\n\n\n<p>Audios liefern viel weniger Daten zur\u00fcck &#8211; lediglich msg und data.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"180\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-21.48.05-1024x180.png\" alt=\"\" class=\"wp-image-109\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-21.48.05-1024x180.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-21.48.05-300x53.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-21.48.05-768x135.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-21.48.05-1536x270.png 1536w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-21.48.05-2048x359.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Image transformations<\/h3>\n\n\n\n<p>Route: <strong>\/rest\/transform-image.<\/strong><br>Diese Route bekommt den Original-Filenamen als Parameter und transformiert das Original wie gew\u00fcnscht mit den Options. Returnt eine simple Response:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"227\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-22.36.22-1024x227.png\" alt=\"\" class=\"wp-image-114\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-22.36.22-1024x227.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-22.36.22-300x66.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-22.36.22-768x170.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-22.36.22-1536x340.png 1536w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-16-at-22.36.22-2048x454.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Enth\u00e4lt nur ein Items-Array.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Error-Handling<\/h3>\n\n\n\n<p>Falls falsche Cloudinary-Options eingegeben wurden, bekommt man eine Error Response mit entsprechender Beschreibung zur\u00fcck:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"243\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.04.32-1024x243.png\" alt=\"\" class=\"wp-image-99\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.04.32-1024x243.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.04.32-300x71.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.04.32-768x182.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.04.32.png 1528w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Bei Video falsche Options: Video soll als JPG vom CDN returnt werden.<\/figcaption><\/figure>\n\n\n\n<p>Im Falle dessen, dass der CDN selbst Fehler aufweist (programm-technisch), wird auch ein passender Error geworfen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.07.13-1024x273.png\" alt=\"\" class=\"wp-image-100\" width=\"699\" height=\"186\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.07.13-1024x273.png 1024w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.07.13-300x80.png 300w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.07.13-768x205.png 768w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2020\/04\/Screenshot-2020-04-14-at-11.07.13.png 1380w\" sizes=\"auto, (max-width: 699px) 100vw, 699px\" \/><figcaption>AHHHH! Schnell in #onlydev&#8230;<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">F\u00fcr die Backend-Elfen<\/h3>\n\n\n\n<p>Es gibt jetzt auch eine umfassende Testsuite mit allen m\u00f6glichen Tests, die den CDN auf Herz und Nieren testen. Man kann die Tests im Root-Directory mit <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/bin\/phpunit<\/code><\/pre>\n\n\n\n<p>ausf\u00fchren. Die Tests k\u00f6nnen mal gut ~50-60 Sekunden brauchen aufgrund der vielen Test-Uploads. Das Folgende sollte ausgegeben werden:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"569\" height=\"140\" src=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-22.45.34.png\" alt=\"\" class=\"wp-image-117\" srcset=\"https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-22.45.34.png 569w, https:\/\/intern.quizu.de\/wp-content\/uploads\/2019\/11\/Screenshot-2020-04-16-at-22.45.34-300x74.png 300w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><figcaption>Die Tests schicken eine Anfrage an den CDN, simulieren also eine ganz normale Anfrage an den CDN von au\u00dfen (z.B. Riddle!)<\/figcaption><\/figure>\n\n\n\n<p>Sollte hier mal was schief gehen, sollte auch eine passende Test-Fehlernachricht ausgegeben werden, ich (Philipp) kann aber in jedem Fall helfen.<br><strong>BEST USE CASE F\u00dcR DIE TESTS: <\/strong>Vor jedem Commit beim CDNM die Testsuite durchlaufen lassen  und damit sicherstellen, dass man nichts zerst\u00f6rt hat. Bei grundlegenden \u00c4nderungen m\u00fcssen die Tests abge\u00e4ndert werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/intern.quizu.de\/?p=81\">Weiterlesen<span class=\"screen-reader-text\">CDN<\/span><\/a><\/div>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-81","post","type-post","status-publish","format-standard","hentry","category-working","entry"],"_links":{"self":[{"href":"https:\/\/intern.quizu.de\/index.php?rest_route=\/wp\/v2\/posts\/81","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/intern.quizu.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/intern.quizu.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/intern.quizu.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/intern.quizu.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=81"}],"version-history":[{"count":13,"href":"https:\/\/intern.quizu.de\/index.php?rest_route=\/wp\/v2\/posts\/81\/revisions"}],"predecessor-version":[{"id":123,"href":"https:\/\/intern.quizu.de\/index.php?rest_route=\/wp\/v2\/posts\/81\/revisions\/123"}],"wp:attachment":[{"href":"https:\/\/intern.quizu.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=81"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/intern.quizu.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=81"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/intern.quizu.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=81"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}