Skip to content

Parallelize upload/download tasks #10124

Open

Description

@tobiasKaminsky

Currently we do this one by one, but iOS uses 5 parallel upload/downloads.

  • parallelize upload
  • parallelize download

Activity

  1. moved this to 🧭 Planning evaluation (dont pick) in 🤖 🍏 Mobile clients teamon Aug 18, 2022
  2. ayushbhanu commented on Sep 10, 2022

    @ayushbhanu
  3. changed the title [-]Parallelize tasks[/-] [+]Parallelize upload/download tasks[/+] on Oct 15, 2023
  4. added
    feature: transfers[WIP] Any uploading / downloading matters that aren't auto upload or sync specific
    performance: misclag, ANR, etc and rarer exceptions/errors that don't have their own labels
    on Oct 15, 2023
  5. added
    performance 🚀Performance improvement opportunities (non-crash related)
    and removed
    performance: misclag, ANR, etc and rarer exceptions/errors that don't have their own labels
    on Dec 20, 2023
  6. BluePixel4k commented on Mar 30, 2024

    @BluePixel4k

    Any news on this feature? :)

    Currently, uploading a batch of files takes a very long time. A parallel upload would help to improve this.

  7. SodaWithoutSparkles commented on Aug 15, 2024

    @SodaWithoutSparkles

    IMHO even zipping/taring the files on the client and upload a big file would be much more efficient than the current (1 by 1) solution. The overhead of constantly starting and stopping is way more resource-intensive for small files (e.g. photos). I can see 30+ MB/s on local network uploading a single video, but less than 1/10 of it when uploading photos.

    This shouldnt be too hard to implement either, for all files smaller than X MB. Combining this with parallel uploads/downloads should speed things up a lot.

  8. Peacemanguy commented on Dec 14, 2024

    @Peacemanguy

    Hi!
    This would be really useful for regular users that want to sync all the photos that they have on nextcloud.

    I am trying to sync 2000+ photos and videos and currently I am at the 3rd DAY of waiting for all files to get uploaded.
    I HAVE to keep the device open and not locked otherwise the files will not upload themselves.

    Having to bundle them all together in an archive is a hassle that most people will not perform, myself included.

    It would be a pretty good quality of life improvement to have this feature.

  9. MightyHelper commented on Sep 23, 2025

    @MightyHelper

    Hello, any news on this?

    My use case for this is that I am on a trip and I have 300+ ms latency which makes the negotiation to even start the upload take longer than the actual upload itself.

    I have seen writes higher than 10MB/s for videos, but for small photos it is below 10KB/s on average since it has to negotiate one by one... And I have 2000+ photos too...

  10. k0raph commented on Jan 12, 2026

    @k0raph

    I've been watching this issue for over 2 years now. I come back to it every so often when I need to upload large sets of files 😅.

    Although I have basically no experience in Kotlin I thought I would give it a go

    It's a bit premature but I would appreciate any feedback on this draft #16268. I've only manually tested it so far, but it's significantly faster than the sequential uploading from before

    Hopefully this gives hope to the others lurking around this issue, and even if my solution is not ideal, at the very least I hope it reignites the conversation again

    Edit: It's now ready for review #16268

    The PR above only focuses on the "parallelize upload" portion of this issue. I have briefly scanned through the code to see what would be required to support "parallelize download" and I think a near identical solution would work. I would be happy to look into raising a separate PR to address that, but for now I will wait until I get feedback on above first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementfeature: auto uploadfeature: transfers[WIP] Any uploading / downloading matters that aren't auto upload or sync specificperformance 🚀Performance improvement opportunities (non-crash related)

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions