nextcloud / nextcloud/server

Admin option to disable creation of ZIP archives

Open
#33,730 11 comments 51 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement feature: files performance 🚀
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • 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.

Is your feature request related to a problem? Please describe.

If a user of my instance requests the download of a folder or multiple files, the server will attempt to create a ZIP file. If the folder or summed up file size is large, creating the ZIP file can create a significant computational burden on the server, in the worst case making the instance unusable for everyone. Since there is no visual indication of what is happening, the user doesn't even know that the server is actively zipping and will refresh and/or try to download again, which will create even more strain on the server. (The latter is a different problem, but it certainly makes this one worse).

Describe the solution you'd like

Add a check box for the admin:

  • Disable creation of ZIP files from file selections and folders that are larger than ___ MB (0 prevents any ZIP files from being created).

Whenever a user clicks Download on a folder for which ZIP file creation is disabled, they should be shown a dialogue that suggests using a WebDAV client instead. This can conveniently link to:
https://docs.nextcloud.com/server/latest/user_manual/en/files/access_webdav.html

Whenever a user clicks Download for a selection of files whose combined size is larger than the threshold, multiple individual downloads should be triggered; each after the last one is complete.

Text in italics was added later

Bounty

I am willing to pay a 50€ bounty to whoever develops the proposed solution and gets it merged until 2024-07-19. Payable via SEPA/Paypal/Paydirekt.

Describe alternatives you've considered

none

Additional context

Here is a help thread on the matter:
https://help.nextcloud.com/t/disable-zipping/59279/26

Here is an outdated older issue (it could not be re-opened although there is activity on it) :
https://github.com/nextcloud/server/issues/16971

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named in the issue. Start by tracing the folder and multi-file download flows and the admin settings and dialog UI; done means enforcing the configured size threshold, avoiding oversized ZIP creation, offering the WebDAV guidance, and sequencing individual downloads.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.