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ábla | Szerep |
|---|---|
doc_download | letöltési kérés (token, felhasználó, forrás, store_id, mappa, dokumentum, állapot, lejárat) |
doc_download_item | fá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
dlrequest&doc_share_id=(opcionálisandoc_id; nélküle a teljes mappa): belépés-ellenőrzés (error_login_required), majddownloadRequest(): 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 adoc_downloadtáblába, és azonnalidoc_downloadfeladat-sort tesz be. Válasz: token,queued.doc_downloadhá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ájlskip; kiadható fájl nélkülfailed(nothing_watermarkablevagynothing_allowed), különbenready24 órás lejárattal.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 csomagexpired. Válasz: állapot, fájlok, kihagyottak, kész állapotnál adlfileURL.dlfile: a token a felhasználóé, állapotready, é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.