Vízjeles letöltés – háromlépéses folyamat és kiadási napló

A letöltési kérés, az aszinkron előkészítés és a streamelt kiadás lépései, a jogosultság újraellenőrzése, a vízjel tartalma és a kiadott példányok ujjlenyomata.

Áttekintés

A portál letöltése három lépésben fut: kérés, előkészítés a háttérben, majd a fájl kiadása. Bájt csak az utolsó lépésben mozdul, és vízjeles példány a webtárhelyre nem kerül.

Adatmodell

A táblanevek a telepítés saját előtagjával állnak az adatbázisban.

TáblaSzerep
doc_downloadletöltési kérés (token, felhasználó, forrás, store_id, mappa, dokumentum, állapot, lejárat)
doc_download_itemfájlonkénti kiadás (egyedi vízjel-kód, SHA-256 ujjlenyomat, kihagyás oka)

Migráció: install/migrations/1.1.0/20261029_011_dataroom_store_download.sql.

Folyamat

  1. dlrequest&doc_share_id= (opcionálisan doc_id; nélküle a teljes mappa): belépés-ellenőrzés (error_login_required), majd downloadRequest(): a mappa a felhasználóé és letölthető, egyedi fájlnál a dokumentum is elérhető és letölthető; dlbtdocdownload->request(user_id, 'portal', share_id, doc_id) sort ír a doc_download táblába, és azonnali doc_download feladat-sort tesz be. Válasz: token, queued.
  2. doc_download háttérfeladat (prepareQueued(50)): lejárt kérések lezárása; a jogosultság újraellenőrzése a kérés pillanatában érvényes szabályokkal (hozzárendelés, időablak, a kérés áruháza, tartalmi hatókör, mappa és dokumentum letölthetősége; admin-kérésnél a mappa minden aktív dokumentuma); fájlonként egyedi kód a kiadási naplóba; nem vízjelezhető fájl skip; kiadható fájl nélkül failed (nothing_watermarkable vagy nothing_allowed), különben ready 24 órás lejárattal.
  3. dlstatus (kétmásodpercenként): csak a saját kérés (getDownloadByToken); ha a feladatsor 20 mp-en belül nem vette fel, az előkészítést maga futtatja; lejárt kész csomag expired. Válasz: állapot, fájlok, kihagyottak, kész állapotnál a dlfile URL.
  4. dlfile: a token a felhasználóé, állapot ready, és a mappa MOST is elérhető. dlbtdocdownload->stream(): fájlonként a bájtok memóriába, vízjel memóriában (PDF: Dlbtwatermark::pdf, kép: Dlbtwatermark::image; szöveg: név, azonosító, dátum, „Bizalmas”, egyedi kód); egy fájlnál közvetlenül, többnél folyamatos ZIP (Zipwriter) a mappa nevével és tartalomjegyzékkel. Minden példány SHA-256 ujjlenyomata a naplóba (markDownloadIssued), a letöltés megjelölve (markDownloaded).

A régi download útvonal megmaradt: a törzse a közös kérést indítja, és a portálra irányít a token-paraméterrel.

Kapcsolódó témák: vízjel letöltés háttérfeladat