Upload fails with "Disk Full" error when temp and final storage share the same volume
- Dominant language
- Go
- Stars
- 2.1k
- Forks
- 274
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 103
Description
**Describe the bug**
When attempting to upload a large file that fits within the available free space, the upload fails with a "disk full" error. This happens because OwnCloud first buffers the file in /var/lib/owncloud/storage/users/uploads/. If the temporary upload folder and the final user storage are on the same volume, the system effectively requires double the file size in free space during the transfer process.
**Steps to reproduce**
- Ensure the storage volume has roughly 5GB of free space.
- Attempt to upload a single file of 3GB.
- The upload starts but fails mid-way or at the beginning.
- Observe the error message: "Disk full" or "Insufficient storage," despite the 5GB total capacity.
**Expected behavior**
The system should either stream the file directly to the final destination or allow for the configuration of a separate disk/partition for the uploads directory to prevent volume saturation on a single mount point.
**Actual behavior**
The upload fails because the temporary staging area (.../users/uploads/) and the final storage path share the same volume, leading to a "Disk Full" state during the move/copy operation.
**Additional context**
To resolve this, we need a way to define a separate environment variable (e.g., OC_TEMP_UPLOAD_PATH) so that temporary uploads can be mounted on a separate high-speed or larger scratch disk, independent of the user's data volume.
Contributor guide
Assessment
This issue has not been assessed yet.