Dokumentum feltöltése – rendszerleírás

A feltöltés útjai (normál, darabolt, nagy állomány, közvetlen Drive), a tárhely-cél feloldása, a tartalom-duplikátum kezelése és a feltöltés utáni háttérfeladatok.

A feltöltés a dokumentumtár mentő végpontján (FormData) és több kiegészítő végponton fut. A cél tárhelyet a cég objektum-tárhely szabálya adja, ha nincs explicit cél; a fájl után típus, címkék, megosztás, objektum-kötés és háttérfeladatok következnek.

Adatmodell

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

TáblaSzerep
doc, doc_locationrekord és elhelyezések
doc_link, label_link, doc_share_itemobjektum-, címke-, megosztás-kötések
cron_queuedoc_text, doc_recognise, doc_zip_unpack jobok
upload_sessionnagy és közvetlen Drive-feltöltés munkamenete (tulajdonos: a telefon-mentés modell)

Folyamat

  1. Üres POST és üres fájl esetén post_max_size-hiba. Kötelező client cég a hatókörben (error_company).
  2. Cél: explicit választás, vagy a cég szabálya (getObjStorage(object_type | document)); gdrive-célnál a cég bekötött fiókja/meghajtója kényszerített; távoli célnál kötelező mappa (error_storage_configuration); fiók-hatókör (storageAccountAllowed, getAllowedStorageAccountIds).
  3. Több fájl egy menetben; tartalom-duplikátum (SHA-256 + méret) ugyanarra a helyre: kihagyva; más mappába: új elhelyezés (shortcut), egy fizikai példány.
  4. Számla-csomag ZIP (csak PDF, ≤2000 tétel, ≤300 MB, átmeneti ZIP-ek együtt ≤1 GB) → doc_zip_unpack job.
  5. Utána: típus (doc_role), címkék, opcionális megosztási mappa, objektum-kötés minden dokumentumra (addDocLink; a válasz jelzi: új kötés vagy már kötve), PDF-nél doc_text job; nem objektumhoz szóló, nem nem-számla típusnál felismerési sor és doc_recognise job; számla-objektumhoz feltöltött képnél az üres számlamezők kitöltése (autoFillInvoiceFromUpload: szöveg, OCR, kiolvasás, fillEmptyFromDocument); thumbnail.
  6. Darabolt: uploadchunk. Nagy állomány: largeinit / largechunk / largestatus – szerver-oldali munkamenet (azonosító, offset, a végén méret + SHA-256), szabad-hely előellenőrzés.
  7. Közvetlen Drive: drivesession / drivestatus / drivedone – Google resumable munkamenet (csak gdrive); a lezárás a Drive-tól visszakérdezi a méretet és a szülő-mappát, csak egyezésnél születik rekord.

Beállítások és jogok

  • Beállítás: a feltöltési mód (upload_mode) és a közvetlen feltöltés küszöbe (upload_direct_min_mb) a modul-beállításokban; a módválasztó csak user módnál és uploadmode joggal készül el.
  • Funkciójogok: mentés canSave(document, 0) (az add nincs a katalógusban; a Hozzáadás gomb edit-hez kötött), a darabolt/nagy/Drive végpontokon edit, uploadmode.
  • Hibakódok: error_file, error_file_size, error_large_*, error_drive_*.
Kapcsolódó témák: feltöltés tárhely háttérfeladat