Skip to content

Instantly share code, notes, and snippets.

@szepeviktor
Last active July 9, 2018 23:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save szepeviktor/582755b29bc337dae15a4e68f6357e74 to your computer and use it in GitHub Desktop.
Save szepeviktor/582755b29bc337dae15a4e68f6357e74 to your computer and use it in GitHub Desktop.
Képek életciklusa egy webes alkalmazásban

Képek életciklusa egy webes alkalmazásban

Feltöltés

  • Sérült kép, hibás kép, ismeretlen formátum, nem kép kezelése, megfelelő hibaüzenet
  • Milyen formátumokat támogatunk, legyen kiírva, a GD2 extension - amit használunk - ezeket támogatja ("Return Values" konstansok)
  • Maximálisan feltölthető képfájl méret: 50? MB, legyen kiírva
  • Minimális képméret alatt hibaüzenet: 330×330
  • Egyszerre lehessen több képet kiválasztani feltöltésre
  • A feltöltést képenként menjen (AJAX-szal, chunk-olva) egyszerre egy, így virtuálisan korlátlan mennyiségű képet fel lehet tölteni, legyen korlát, ne lehessen 50? darabnál többet feltölteni, mert lefagy a böngésző
  • Hány kép lehet összesen egy entitáshoz (több alkalommal) feltöltve?
Normalizálás
  • Maximális képméretre kicsinyítés: 3500×3500 (12 MP - A/4-es oldal 300 DPI felbontással)
  • Formátum konvertálás: JPEG, 100%-os minőség
  • Optimalizálás, azaz képfájl méret csökkentés jpeg-archiver
  • Eredeti elmentése -> ez egy másik szolgáltatás
  • Eredeti fájlnév elmentése adatbázisba, hash-elt név használata
  • EXIF adatok (kamera neve, időbélyeg stb.) eltárolása adatbázisban és kitörlése a képfájlból

Feldolgozás és tárolás

Machine Learning

Kiszolgálás (letöltés)

  • Hash-elt képfájl név
  • A hash ne legyen kitalálható, legyen a hash-elt adatok között a képhez nem kapcsolódó adat, pl. időbélyeg, véletlen szám
  • Minden AWS S3 bucket-hez külön AWs felhasználó
  • CDN használata (tartalom kiszolgáló hálózat)
  • Hotlinking védelem, azaz mások ne tölthessék be a képeket a saját honlapjukba (teszt időszakkal)
  • Hiányzó kép kezelése (image.onerror)
  • Kép gyorsítótárazásának szabályozása: 1 nap (Cache-Control)

Egyebek

  • Különböző méretek újragenerálása
  • Kép eltávolítás
  • Biztonsági mentés készítése másik szolgáltatóhoz (programhiba, emberi hiba) Backblaze B2
  • Teljes S3 bucket méret naplózása, riasztás 10? GB fölött
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment