mirror of
https://github.com/abraunegg/onedrive
synced 2024-06-03 14:32:24 +02:00
* Size check should only be used if configured * Rather than make 2 x calls to OneDrive service, driveItem already has the size value to check * Add a try block when query for file details
This commit is contained in:
parent
3d7843b237
commit
687080d435
23
src/sync.d
23
src/sync.d
|
@ -963,9 +963,11 @@ final class SyncEngine
|
||||||
log.vdebug("OneDrive change is a new local item");
|
log.vdebug("OneDrive change is a new local item");
|
||||||
// Check if file should be skipped based on size limit
|
// Check if file should be skipped based on size limit
|
||||||
if (isItemFile(driveItem)) {
|
if (isItemFile(driveItem)) {
|
||||||
if (onedrive.getFileDetails(item.driveId, item.id)["size"].integer >= this.newSizeLimit) {
|
if (cfg.getValueLong("skip_size") != 0) {
|
||||||
log.vlog("Skipping item - excluded by skip_size config: ", item.name, " (", onedrive.getFileDetails(item.driveId, item.id)["size"].integer/2^^20, " MB)");
|
if (driveItem["size"].integer >= this.newSizeLimit) {
|
||||||
return;
|
log.vlog("Skipping item - excluded by skip_size config: ", item.name, " (", driveItem["size"].integer/2^^20, " MB)");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
applyNewItem(item, path);
|
applyNewItem(item, path);
|
||||||
|
@ -1097,7 +1099,20 @@ final class SyncEngine
|
||||||
{
|
{
|
||||||
assert(item.type == ItemType.file);
|
assert(item.type == ItemType.file);
|
||||||
write("Downloading file ", path, " ... ");
|
write("Downloading file ", path, " ... ");
|
||||||
JSONValue fileDetails = onedrive.getFileDetails(item.driveId, item.id);
|
JSONValue fileDetails;
|
||||||
|
|
||||||
|
try {
|
||||||
|
fileDetails = onedrive.getFileDetails(item.driveId, item.id);
|
||||||
|
} catch (OneDriveException e) {
|
||||||
|
if (e.httpStatusCode >= 500) {
|
||||||
|
// OneDrive returned a 'HTTP 5xx Server Side Error' - gracefully handling error - error message already logged
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
// Default operation if not a 500 error
|
||||||
|
log.error("ERROR: Query of OneDrive for file details failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (isMalware(fileDetails)){
|
if (isMalware(fileDetails)){
|
||||||
// OneDrive reports that this file is malware
|
// OneDrive reports that this file is malware
|
||||||
|
|
Loading…
Reference in a new issue