Jetzt verfügbar:  Berichte für DRACOONMehr Infos

iOS: Dateien im Hintergrund hochladen?

Kommentare

8 Kommentare

  • Offizieller Kommentar
    Avatar
    Michael Netter

    Hallo Volker,

    iOS schränkt prinzipiell die Abarbeitung von Tasks im Hintergrund ein, unter anderem um den Batterieverbrauch einzuschränken und um der App im Vordergrund die bestmögliche Leistung zur Verfügung zu stellen. Die von dir beschriebenen Workarounds (bspw. das Abfragen der Location um CPU-Zeit im Hintergrund zu erhalten) sind uns bekannt. Wir achten jedoch sehr darauf, dass die von uns angebotenen Anwendungen die von Apple aufgestellten Regeln zur Hintergrundnutzung einhalten.

    Generell beobachten wir die Situation sehr genau und reagieren auf neue von Apple angebotene APIs. So ist es ab Version 5.13 unserer iOS-App möglich, bereits gestartete Up- und Downloads im Hintergrund abzuschließen.

    Viele Grüße
    Michael

    Aktionen für Kommentare Permalink
  • Avatar
    Volker Jonas

    Guten Tag,

    ich möchte dieses Thema nochmal aufgreifen. Anwender finden es bei Nutzung der eigenentwickelten App sehr lästig, dass Daten nicht im Hintergrund hochgeladen werden können. Muss die App immer wieder beim Upload aktiviert werden. Ist das SDK in der Zwischenzeit so erweitert worden, dass man jetzt selbst im Hintergrund hochladen kann? Oder gibt es einen Ausblick wann dieses realisiert wird ? Sonst würde ich vermutlich den "Trick" mit Abfragen der Location probieren. 

    Grüße

    Volker Jonas

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Mathias Schreiner

    Hallo Volker,

    mit dem DRACOON Swift SDK ist das Hochladen im Hintergrund möglich. Dazu muss beim Upload eine background session config mitgegeben werden, z.B.:

    let sessionConfig = URLSessionConfiguration.background(withIdentifier: "com.dracoon.upload.\(uploadId)")
    dracoonClient.nodes.uploadFile(uploadId: uploadId, request: createRequest, fileUrl: fileUrl, callback: callback, resolutionStrategy: .autorename, sessionConfig: sessionConfig))

    Nach Abschluss des Uploads wird das UIApplicationDelegate in der handleEventsForBackgroundURLSession mit dem in der Session verwendeten Identifier informiert.

    Damit die laufende Session wiedergefunden wird, falls die App beispielsweise über einen force close beendet wird, implementiert man im UIApplicationDelegate die applicationDidBecomeActive:

    func applicationDidBecomeActive(_ application: UIApplication) { 
    dracoonClient.nodes.resumeBackgroundTasks()
    }

     

    Viele Grüße

    Mathias

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Volker Jonas

    Hallo Mathias,

    Danke für die Rückmeldung mit dem Dracoon SDK 2.1.0 geht der Datei-Upload jetzt im Hintergrund.
    Aber ich frage mich, ist damit auch das grundsätzliche Problem, was ich zu Beginn meines Post - Mai 2020 - gefragt hatte, lösbar ?
    Die App selbst befindet sich irgendwann nicht mehr im Vordergrund und der Upload steht so lange still bis der Anwender die App wieder in den Vordergrund holt.

    Ich hatte gestern auch einiges mit der neuen Funktionalität in einer eigen entwickelten App probiert, Dateien wurden hochgeladen.
    Dann habe ich folgenden Test gemacht:
    Für ca. 50 Dateien mit je 10 MB direkt 50 Background Sessions erzeugt, also ein Gesamtupload von ca. 500 MB
    40 Uploads kamen an, dann hing die App.
    Neustart der App erzeugte bei weiteren Versuchen bei dem Objekt der Klasse UploadCallback immer diese Meldung "Response status code was unacceptable: 507"
    Auch wenn ich ein Datei-Upload nicht mit der neuen Hintergrundfunktionalität versuchte.
    Wenn ich mit Dracoon Web App einen Upload probiere, funktioniert dieser.
    Könnte auf ein grundsätzliches Problem der Eigenentwicklung hindeuten, nur wenn ich mit der Dracoon-App ein Upload probiere
    kommt immer die Meldung: "Fehler beim Hochladen. Dateien konnten nicht hochgeladen werden, da ihre Gesamtgröße..."
    Vor dem Problem mit dem Upload der 50 Dateien, funktionierte Dateiupload mit der Dracoon App einwandfrei.

    Aktuell ist mir eine Weiterentwicklung der eigenen App so nicht möglich.
    Wäre hilfreich, wenn man dieses Problem lösen könnte, ich sehe so direkt nicht, wie ich es lösen kann.

    Mit freundlichen Grüßen
    Volker Jonas

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Mathias Schreiner

    Hallo Volker,

    die erwähnten Fehlermeldungen beim Upload weisen auf ungenügenden Speicherplatz im Zielraum oder -ordner hin.

    Der automatische Media-Upload in der DRACOON-App schließt aktuell (v6.4.0/v5.17.0) nur bereits begonnene Uploads im Hintergrund ab, startet allerdings keine neuen, solange sich die App im Hintergrund befindet. Wir werden eine Änderung dieses Verhaltens diskutieren.

    Viele Grüße,

    Mathias

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Volker Jonas

    Hallo Mathias,

    dann verstehe aber nicht wieso ich mit der Dracoon Web App noch Dateien hochladen kann, mit der Dracoon-App aber nicht. Ich sehe aber auch in der Dracoon App, die mit der Dracoon Web App gerade hochgeladene Datei. Bin somit auch vermutlich im richtigen "Raum" oder "Ordner", habe von 5 GB verfügbaren Speicherplatz gerade mal ca. 200 MB belegt.

    Zum automatischen Media-Upload ist dann die Frage, ob dieses auch in einer Eigenwicklung einer App möglich ist. Ist mir leider immer noch nicht klar. Der Quellcode der Dracoon-App  steht vermutlich nicht zur Verfügung.

    Vielen Dank für die Aufklärung

    Mit freundlichen Grüßen

    Volker Jonas

     

     

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Mathias Schreiner

    Die grundsätzliche Ablauf beim automatischen Media-Upload ist der folgende:

    Die gewünschten Mediendateien sortiert aus der PhotoLibrary abholen und danach mittels Background Session hochladen. Sobald die App in den Hintergrund geht, kann man weitere Uploads in der Background Session starten, siehe dazu auch hier.

    Zwar können auch neue Uploads im Hintergrund gestartet werden, hierfür gibt es allerdings Limitierungen seitens iOS (Abschnitt: "Use Background Sessions Efficiently").

    Viele Grüße,

    Mathias

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Volker Jonas

    Hallo Mathias,

    Danke würde es ja gerne ausprobieren, aber das Problem  mit dem angeblich nicht vorhandenen Speicherplatz besteht weiterhin. Habe alle Ordner und Dateien über die Dracoon-Web-App gelöscht. Kein Upload möglich außer Web-App.

    Mit freundlichen Grüßen

    Volker Jonas

    0
    Aktionen für Kommentare Permalink

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.