Zotero sync problem with local Webdav server
Hello, I have been using a local home qnap server for synching and backing zotero. It had ready to use webdav server. I had to retire the nas and built my own. I am using arch linux on lts 4.19 kernel.
I used a ready docker container from https://hub.docker.com/r/bytemark/webdav. I have not done any configuration other than showing a place where to put files and the account information. Following is the docker-compose.yml file to deploy the container.
version: '3'
services:
webdav:
image: bytemark/webdav
restart: always
ports:
- "8080:80"
environment:
AUTH_TYPE: Digest
SERVER_NAMES: zotero.server.home
volumes:
- /local/path/to/container-data:/var/lib/dav
- /local/path/to/auth/user.passwd:/user.passwd
I am using digest authentication. I can verify the setup is working with a non privileged user by curl commands, similar to below, I can open directory, upload and delete files to the webdav container and see though the browser.
curl --user 'user:pass' 'http://zotero.server.home' --digest
curl --user 'user:pass' -X MKCOL 'http://zotero.server.home/user' --digest
curl --user 'user:pass' -X MKCOL 'http://zotero.server.home/user/zotero --digest
curl --user 'user:pass' -T ./test.txt 'http://zotero.server.home/user/zotero/ --digest
I have entered sync information to Zotero and it passed zotero verification.
When I start sync with zotero, zotero is traversing the database for all items but for each item, as far as I can see gives a message similar to this (I have enabled the debugging and taken the log from Zotero Help > Debug Output Logging > View Log)
checking attachment file for item 1/V58IPEHF
(3)(+0000014): Mod time for 1/V58IPEHF matches remote file -- skipping
After traversing the whole library, no file is uploaded.
I looked at the Dockerfile that is available at https://github.com/BytemarkHosting/docker-webdav.git to see if there are any unexpected issues.
I have seen that the build script adds following directives that maybe relavant to zotero operation.
# These disable redirects on non-GET requests for directories that
# don't include the trailing slash (for misbehaving clients).
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[01234]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch " Konqueror/4" redirect-carefully
BrowserMatch "^gvfs" redirect-carefully
I would like to point out that that there is no permission problem since I can file operations via curl as an authenticated normal user.
I also would like to point out that client (where zotero application is running) and webdav server machines are time synced.
I post to this forum since it seems the webdav server is running, at least to me, as expected, but I am must be missing something from zotero part.
Any insight, help much appreciated.
I used a ready docker container from https://hub.docker.com/r/bytemark/webdav. I have not done any configuration other than showing a place where to put files and the account information. Following is the docker-compose.yml file to deploy the container.
version: '3'
services:
webdav:
image: bytemark/webdav
restart: always
ports:
- "8080:80"
environment:
AUTH_TYPE: Digest
SERVER_NAMES: zotero.server.home
volumes:
- /local/path/to/container-data:/var/lib/dav
- /local/path/to/auth/user.passwd:/user.passwd
I am using digest authentication. I can verify the setup is working with a non privileged user by curl commands, similar to below, I can open directory, upload and delete files to the webdav container and see though the browser.
curl --user 'user:pass' 'http://zotero.server.home' --digest
curl --user 'user:pass' -X MKCOL 'http://zotero.server.home/user' --digest
curl --user 'user:pass' -X MKCOL 'http://zotero.server.home/user/zotero --digest
curl --user 'user:pass' -T ./test.txt 'http://zotero.server.home/user/zotero/ --digest
I have entered sync information to Zotero and it passed zotero verification.
When I start sync with zotero, zotero is traversing the database for all items but for each item, as far as I can see gives a message similar to this (I have enabled the debugging and taken the log from Zotero Help > Debug Output Logging > View Log)
checking attachment file for item 1/V58IPEHF
(3)(+0000014): Mod time for 1/V58IPEHF matches remote file -- skipping
After traversing the whole library, no file is uploaded.
I looked at the Dockerfile that is available at https://github.com/BytemarkHosting/docker-webdav.git to see if there are any unexpected issues.
I have seen that the build script adds following directives that maybe relavant to zotero operation.
# These disable redirects on non-GET requests for directories that
# don't include the trailing slash (for misbehaving clients).
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[01234]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch " Konqueror/4" redirect-carefully
BrowserMatch "^gvfs" redirect-carefully
I would like to point out that that there is no permission problem since I can file operations via curl as an authenticated normal user.
I also would like to point out that client (where zotero application is running) and webdav server machines are time synced.
I post to this forum since it seems the webdav server is running, at least to me, as expected, but I am must be missing something from zotero part.
Any insight, help much appreciated.
-
dstillmanSee Files Not Syncing and provide a Debug ID as explained there if you're still having trouble.