Auto-upload: with "delete from camera roll" active, photos that are already present on the server are not deleted from the camera roll
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
- #4395 di @mvanhorn — chiusa senza merge
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
Direzione di ricerca
Start in NCAutoUpload.swift around autoUploadBackgroundSync at line 376, then trace removeUploadedAssetsIfNeeded and the handling of a successful PROPFIND. Reproduce with existing server photos and remove_photo_CameraRoll enabled; done means those already-present assets are removed from the camera roll without changing the handling of upload errors.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Steps to reproduce
- reinstall app with pictures (previously uploaded to the server) still present on the camera roll (for whatever reason, see #4307, #4306 for instance)
- setup app for automatic uploading, "new_photos_only" not set, and "remove_photo_CameraRoll" set
- maintain app in foreground with a good connection (test setup: iPhone and server on the same LAN)
- wait for upload termination
Expected behaviour
I believe these files should be deleted from the camera roll (at least that's the exact reason I reinstalled the app)
Actual behaviour
Out of more than 600 files, only 58 got deleted (including videos that were not uploaded because of #4304 ).
Analysis
When a photo is found in the camera roll, autoUploadBackgroundSync (NCAutoUpload.swift:376) will PROPFIND the server, with 3 outcomes
.errorCode == 404: extract and upload file- other errors (503, 401, 423, ...): do nothing, we'll see on next pass
.success: file exists, deletes the local asset row -> this is where the decision is made to not delete the file
Note: the existence check is only based on the name of the file. In my case, with default _filenamemask_ and _autoupload_create_subfolder_ set, there is a very thin chance this could cause collisions, so it's fine. Perhaps other users may encounter issues -- and perhaps changing this is way too costly..
A remark: a few more logs could help better diagnose the auto-upload system, such as upload successes, photos deletion requests (removeUploadedAssetsIfNeeded), logging getCameraRollAssets filtered vs unfiltered counts, etc.
let unfilteredCount = collections.reduce(0) { $0 + PHAsset.fetchAssets(in: $1, options: nil).count }
nkLog(tag: self.global.logTagBgSync,
message: "getCameraRollAssets: collections=\(collections.count), filteredCount=\(allAssets.count), unfilteredLibraryCount=\(unfilteredCount)",
minimumLogLevel: .verbose)
Logs
issue-existing-photos-not-deleted-1.txt
Reasoning or why should it be changed/implemented?
Like I said, IMHO the app should not make the difference between a file that is already there and one that has just been uploaded, so the setting "remove_photo_CameraRoll" should apply to both. Plus, with current auto-upload issues, that would have given me an workaround to clean my camera roll ;). Right now, though, I can safely clear my camera roll
Environment data
iOS version: iOS 18.7
Nextcloud iOS app version: 35.0.0.8
Server operating system: Nextcloud AIO 14.1.1
Web server: Nextcloud AIO 14.1.1
Database: Nextcloud AIO 14.1.1
PHP version: Nextcloud AIO 14.1.1
Nextcloud version: 34.0.4
- Lingua principale
- Swift
- Stelle
- 2.5k
- Fork
- 1k
- Merge medio
- 2g 1h
- PR unite (30g)
- 21
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di nextcloud/ios
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Modify action only shown in context menuForse già presa @mpivchev l’ha presa 15 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
nextcloud/ios#4332 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
i18n: Change text stringAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di nextcloud/ios
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
swiftlang/swift-markdown#299 ·
-
area: agents follow-up
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
manaflow-ai/cmux#37234 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
bug product / functions
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno