Multiple backend doesn't work with WebDav disk on Docker

I have enabled multiple-backend storage like that:

– seafile.conf

port = 8082

enable_storage_classes = true
storage_classes_file = /opt/seafile_storage_classes.json

type = mysql
host = db
port = 3306
user = [usrnm]
password = [psswd]
db_name = seafile_db
connection_charset = utf8

In the seahub I set that:


My json file:

“fore_new_library”: false,
“fs”: { “backend”: “fs”, “dir”: “/shared” },
“commits”: { “backend”: “fs”, “dir”: “/shared” },
“blocks”: { “backend”: “fs”, “dir”: “/shared” }

“fs”: { “backend”: “fs”, “dir”: “/storage/HDD/seafile-data” },
“commits”: { “backend”: “fs”, “dir”: “/storage/HDD/seafile-data” },
“blocks”: { “backend”: “fs”, “dir”: “/storage/HDD/seafile-data” }

And after restarting server, I don’t have any option on creating new library to select backend. Even when I am setting the type of mapping policy to storageID and set for_new_library to true, it still creates everything on ‘is_default = true’ backend.

When I am setting default backend as HDD, I can’t read my SSD’s libraries. When I am setting both as default, server cannot load any library and setting to no default backend results in error creating a new library. Paths are valid, I am sure of that (new folders like blocks are created right there where I want).

If it’s important, I am using WebDav as HDD space (Hetzner’s StorageBox).

What can I do to fix that?

Okay, I’ve partly fixed that by changing ‘is_default’ to ‘false’ for SSD and to ‘true’ for HDD.

But there is a new problem.
When I am trying to create new library on HDD I am getting error that there was problem creating a new library, but when I am creating library on SSD it goes without errors, so I went to logs and I got that:

[11/28/2019 06:18:48 PM] ../common/obj-backend-fs.c(282): Failed to create object parent path /storage/HDD/seafile-data/storage/commits/c29865c2-2bf3-436d-a92a-c0727125b212/7b: No such file or directory.
[11/28/2019 06:18:48 PM] ../common/obj-backend-fs.c(310): [obj backend] Failed to create path for obj c29865c2-2bf3-436d-a92a-c0727125b212:7b45c85e81209db690ac29e866315ceb85d3f0ff.
[11/28/2019 06:18:48 PM] repo-mgr.c(6518): Failed to add commit.

The problem is that path /storage/HDD/seafile-data/storage/commits exists and I can move there as I want.

I chowned every folder in /storage with -r flag + chmodded with -r flag and it didn’t help. Any ideas?