iPhone-Sicherungen: Import, Upload in Teilen und Hintergrundverarbeitung
Datenmodell des iPhone-Sicherungsmoduls, Hinzufügen und fortsetzbarer Upload in Teilen, Start der Verarbeitung und Datentypen, Schritte der Hintergrundaufgabe, Löschen und Inhaltsbereich.
Das Modul importiert und verarbeitet iPhone-Sicherungsarchive (ZIP). Quelle ist ein bereits in der Dokumentenzentrale hochgeladenes Dokument oder der eigene fortsetzbare Upload in Teilen. Die Verarbeitung läuft im Hintergrund in zeitbegrenzten Zeitplaner-Runden mit Kontrollpunkten: Öffnen, Zip-Index, Manifest-Katalog, Export in den Zielspeicher, auch je Datentyp. Auf jedem Endpunkt gilt der Inhaltsbereich auf Firmenebene.
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle |
|---|---|
backup | Sicherung: Firma, Quelldokument, Ziel, Status (14 Zustände von new bis deleting), Größen, active_scope |
backup_file, backup_record | Dateien des Archivs und extrahierte Datensätze |
backup_scope_run | Läufe je Datentyp |
upload_session | Sitzungen des Uploads in Teilen |
doc | Quelldokument in der Dokumentenzentrale |
cron_queue | Hintergrundaufgaben |
Hinzufügen und Hochladen
save: Mandant + gewählte Dokument(e) der Dokumentenzentrale + Ziel (local, gdrive, onedrive; bei Cloud Ordner Pflicht); je Dokument einbackup-Datensatz im Statusnew, Zielordner registriert; Quellen außerhalb des Bereichs übersprungen und gemeldet.- Upload in Teilen:
uploadinit→uploadchunk→uploadstatus→uploadcommit. Die Sitzungs-ID vergibt der Server, der serverseitige Versatz entscheidet (bei Abweichung 409 mit korrektem Versatz), Teilschreibvorgänge werden gemeldet, beim Abschluss Größe und SHA-256 geprüft. - Nach dem Abschluss kommt das Archiv schreibgeschützt in den Ordner
source/der Sicherung;backup-Datensatz (uploaded), Ordner der Dokumentenzentrale über das Ordnermodell und Quelldokument überaddDocdes Dokumentmodells (ohne Textextraktion), dann eine Zeileiphone_backup_extract. - Helfer:
docsearch(Quellsuche),targetdrives,targetfolders(Zielkaskade).
Verarbeitung
process(optionalscope): ohne Quelldokument Fehler; kann sie offensichtlich nicht starten, wird die Lücke genannt. Ein Datentyp erst nach der Indizierung (error_scope_not_indexed); dann mit dem Schrittstreampublish, gesetztemactive_scopeund vorherigem Löschen wartender Zeilen. Reiht eine Zeileiphone_backup_streamoderiphone_backup_extractein, Statusqueued.runtype: startet einen Datentyp (message, contact, attachment, calendar, device, callhistory, geo, Dateibereiche) einzeln und löscht gleiche wartende Zeilen. Fehler:error_scope_unknown,error_type_no_extractor.- Hintergrund: Der Catalog-Worker
task/iphonebackupfolgt dem Schritt der Nutzlast:extract,stream,zipindex,manifest,streampublish,index,publish,delete,purge(Quellarchiv gemäß Aufbewahrungsregel verwerfen) sowie die Datentyp-Schritte. Jede Runde arbeitet im Zeitbudget, setzt am Kontrollpunkt fort und ist idempotent. delete: gewählte Sicherungen im Bereich wechseln zudeletingmit einer Zeileiphone_backup_delete; die ohne Berechtigung werden übersprungen und gezählt.
Berechtigungen
- Eigene Schlüssel:
list(nicht eingestuft),import,process,delete,debug(nicht in den Seeds). Der Berechtigungs-Seed fügtdownloadhinzu, der Controller prüft ihn aber nicht; sein Verhalten ist nicht feststellbar. - Inhaltsbereich:
backupInScopeundcompanyInScopefür Quell- und Zielfirma sowie die Firma des Quelldokuments.