Local Upload Cache with External Primary Storage

Hi everyone,

I am looking to move my Nextcloud to a new setup using dirt cheap S3 as primary storage. Testing it in Docker (great work with the env var config, btw!) with MinIO I am happy to see everything “just work.”

I have one problem with this setup, though: When uploading files Nextcloud creates part files in primary storage, downloads them to merge them, and then uploads them to the S3 backend again.
This means that, depending on where I host, I pay network charges for

  • 2x ingress into Nextcloud
  • 2x egress out of Nextcloud
  • 2x write into S3
  • 1x read out of S3

While I am happy to have NC act as a proxy for S3, this setup is not only unnecessarily heavy on my credit card, but might also negatively impact performance.

Setting 'part_file_in_storage' => false, makes no difference.
Setting 'cache_path' => 'local_cache', makes uploads fail with “Could not rename part file to final file”

Is there any way to make Nextcloud store part files locally and only upload them to S3 as part of the renaming step?

Many thanks in advance and all the best
kon