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.

TabelleRolle
backupSicherung: Firma, Quelldokument, Ziel, Status (14 Zustände von new bis deleting), Größen, active_scope
backup_file, backup_recordDateien des Archivs und extrahierte Datensätze
backup_scope_runLäufe je Datentyp
upload_sessionSitzungen des Uploads in Teilen
docQuelldokument in der Dokumentenzentrale
cron_queueHintergrundaufgaben

Hinzufügen und Hochladen

  1. save: Mandant + gewählte Dokument(e) der Dokumentenzentrale + Ziel (local, gdrive, onedrive; bei Cloud Ordner Pflicht); je Dokument ein backup-Datensatz im Status new, Zielordner registriert; Quellen außerhalb des Bereichs übersprungen und gemeldet.
  2. 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.
  3. 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 über addDoc des Dokumentmodells (ohne Textextraktion), dann eine Zeile iphone_backup_extract.
  4. Helfer: docsearch (Quellsuche), targetdrives, targetfolders (Zielkaskade).

Verarbeitung

  • process (optional scope): 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 Schritt streampublish, gesetztem active_scope und vorherigem Löschen wartender Zeilen. Reiht eine Zeile iphone_backup_stream oder iphone_backup_extract ein, Status queued.
  • 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/iphonebackup folgt 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 zu deleting mit einer Zeile iphone_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ügt download hinzu, der Controller prüft ihn aber nicht; sein Verhalten ist nicht feststellbar.
  • Inhaltsbereich: backupInScope und companyInScope für Quell- und Zielfirma sowie die Firma des Quelldokuments.