From d9601c78b1844b2f9b0038fb216353676208d39a Mon Sep 17 00:00:00 2001 From: gvitali <9034218+gvitali@users.noreply.github.com> Date: Wed, 10 Jan 2024 17:02:20 +0300 Subject: [PATCH] linkbox: fix list paging and optimized synchronization. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. The maximum number of objects on a page should be no more than 1000. Currently it is 1024, for this reason the listing always ends on the first page with the error “object not found”, rclone tries to upload the file again, Linkbox stores it with the name “filename(N)”, and so the storage fills up indefinitely. 2. A hyphen is added to the list of allowed characters, that makes queries more optimized (no need to load all files in a directory for an entity with a hyphen). --- backend/linkbox/linkbox.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/linkbox/linkbox.go b/backend/linkbox/linkbox.go index fd70c2cd5..cc2ac3d16 100644 --- a/backend/linkbox/linkbox.go +++ b/backend/linkbox/linkbox.go @@ -36,7 +36,7 @@ import ( ) const ( - maxEntitiesPerPage = 1024 + maxEntitiesPerPage = 1000 minSleep = 200 * time.Millisecond maxSleep = 2 * time.Second pacerBurst = 1 @@ -220,7 +220,7 @@ type listAllFn func(*entity) bool // // If the name doesn't match this then do an dir list instead // N.B.: Linkbox doesn't support search by name that is longer than 50 chars -var searchOK = regexp.MustCompile(`^[a-zA-Z0-9_ .]{1,50}$`) +var searchOK = regexp.MustCompile(`^[a-zA-Z0-9_ -.]{1,50}$`) // Lists the directory required calling the user function on each item found //