From 7a394a065f8a203a3eb02124262167a44a1e9175 Mon Sep 17 00:00:00 2001 From: abraunegg Date: Sat, 21 Apr 2018 14:54:50 +1000 Subject: [PATCH] Resolve issue #73 - OneDrive Error 507 Insufficient Storage Exception * Resolve https://github.com/skilion/onedrive/issues/73 by by tracking the change in available free disk space when uploading a new file to OneDrive --- src/sync.d | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/sync.d b/src/sync.d index 12b5ee87..7398f432 100644 --- a/src/sync.d +++ b/src/sync.d @@ -792,10 +792,20 @@ final class SyncEngine uploadNewItems(entry.name); } } else { - Item item; - if (!itemdb.selectByPath(path, defaultDriveId, item)) { - uploadNewFile(path); - } + // This item is a file + // Can we upload this file - is there enough free space? - https://github.com/skilion/onedrive/issues/73 + auto fileSize = getSize(path); + if ((remainingFreeSpace - fileSize) > 0){ + Item item; + if (!itemdb.selectByPath(path, defaultDriveId, item)) { + uploadNewFile(path); + remainingFreeSpace = (remainingFreeSpace - fileSize); + log.vlog("Remaining free space: ", remainingFreeSpace); + } + } else { + // Not enough free space + log.log("Skipping item '", path, "' due to insufficient free space available on OneDrive"); + } } } else { // This path was skipped - why?