Where is the 'uploads' directory for

#1

I have a directory /var/www/nextcloud/user/uploads/2260247444/ with 1678 files in it from 00000000 to 00001678 all with a size of 9.6MB

I never seen this kind of directory before. Looks like a buffer directory for large upload files. Is that correct? The files in there are over 2 days old. Can these files be deleted without any issues? It’s about 16GB.

'Your storage is almost full' on Box (Snap)
#2

The uploads folder directly gets filled when the client is uploading files. When the upload finishes this folder gets cleaned out automatically. If one is absolutely certain that no clients for a particular users are uploading files then it is okay to delete the contents of the uploads folder.

#3

clear. thank you!

#4

Is there any way to clean this up automatically?
I use external storage as a only place to store files and my server has very limited file system capacity. A few big uploads with errors and it is full…

#5

Assuming using Debian or a Debian derivative and depending on where uploads folder is located (think it is located in Nextcloud data folder) one could run the following command via cron as www-data as often as wanted.

rm -Rv /srv/nextcloud/data/*/uploads/*

#6

Hello !!

run the following file on daily bases !!

#!/bin/bash

Clean up upload leftover files

This script will remove older files stuck at upload folder

delete older files than 7 days ! no one is uploading for 7 days !!

LOG_ROTATION=7
find /data//uploads/ -type f -mtime +"$LOG_ROTATION" -exec rm {} ;

note /data should be replaced by your data folder path !!

#7

thanks for this, I started using ansible and created this version to get rid of the leftovers. Replace the paths with the one you want clean up.

  - name: Find Temporary Upload Files/Directories older 7 days from User
    find:
      paths: "/nextcloud-data/user/uploads"
      age: 7d
      hidden: true
      recurse: yes
      file_type: any
    register: files_to_delete

  - name: Number of Files/Directories to be deleted
    debug:
      var: files_to_delete.matched

  - name: Delete Files/Directories
    file:
      path: "{{ item.path }}"
      state: absent
    with_items: "{{ files_to_delete.files }}"

For sure not the fasted method, because the ansible module for this is quite slow, but native ansible and therefor I prefer this over CMD.