Issue with NextCloud synchronisation
-
Hello. I am recently using your plugin to connect/sync my WP-website and my Nextcloud.
Setting up external (WebDav) sources works fine, and I have enabled synchronization.
When I use the ‘Now’ button to synchronize an external source, this works fine.
However, the ‘Configure’ options to sync each 15 minutes apparently does not work.Checking the plugins log, I can see that indeed each 15 minutes a sync tries to run.
For each of 3 external sources i have setup, an initial log entry states ‘Using protocol HTTP(S) for this URL.” after which a next log entry reports an error ‘The presumed directory URL could not be loaded’.I am using Version 5.1.0 of the plugin, combined with Version 1.01 of the ‘External files from WebDav in Media Library’ plugin.
Please advise.
-
Hey,
thanks for your interest in my plugin and for the very clear description of the issue.
That allowed me to quickly reproduce the issue on my end and identify the root cause. It only occurs in the additional WebDAV plugin, where the URL is recognized incorrectly during the synchronization.
I don’t have a good solution for this just yet, but I plan to take a closer look at it over the weekend and will get back to you.
Hello. Thanks for your prompt reaction and you initial findings on the issue I reported.
I am looking forward to an updated version of the WebDAV plugin in which the synchronization works as expected.
The update to version 1.0.2 of the WebDAV plugin, which includes a fix for the automatic import, is now available. You should already see it in your WordPress backend as new update. Alternatively: https://github.com/threadi/external-files-from-webdav/releases/tag/1.0.2
Hi, thats earlier than expected…
I installed the 1.02 version, and did not make any changes to the settings after the installation (so synchronization should stil happen every 15 minutes). After that, I added one file in one of the three WebDAV folders which I have set up as external sources. When i checked after an hour or so, the file did not yet appear in the media library.
Then I checked the log and found that: (1) There are no more error lines appearing, but only records stating ‘‘Using protocol WebDAV for this URL.’ (2) However, these records are created at irregular intervals and not the 15 minutes as setup (as an example for one specific external source the timestamps in the log are 12:13, 13:01, 13:38, 13:52, 14:10).
So, something still seems to go not as expected. If I can be of any further help let me know. I really hope you can get this to work!
That sounds strange, since that exact method works fine for me. My guess is that the interval is saved incorrectly on your end. Go to the external source and disable the automatic setting. Then re-enable it immediately – after that, it should be set to the interval you specified and should work.
If that doesn’t work, there are other options you can check:
- Is the file you want to sync in a supported format? A change in the new release is that only supported file types are actually considered during the synchronization. You can view and adjust these under Settings > External Files in the Media Library.
- Does manual synchronization still work? If not, then it’s failing somewhere here, but any error should be visible in the log.
- Try enabling the plugin’s debug mode: under Settings > External Files in Media Library > Advanced, you’ll find “Log mode”. Set it to “Log all”. You’ll then see a lot more entries in the log, including those related to synchronization (note: there will be really a lot of them ^^). This allows you to examine the process in great detail.
It just came to me: the synchronization interval runs via WordPress’s own cronjobs. By default in WordPress, these are triggered by website visits. If these don’t occur every minute (as in a test environment or a local WordPress installation), they won’t run until the next website visit takes place. That would also explain the varying times you’re seeing. If you’re looking for 100% punctual execution here, you’d need to switch WordPress’s own cronjobs to system cronjobs. See, for example: https://kinsta.com/blog/disable-wp-cron/ – if you are using a hosting provider, their support team may also be able to help with this.
Hello.
This morning I found some more time to test again, alas without a positive outcome…
To avoid any influence from a previous setup i decded to delete both plugins (and remove all data option enabled).Under the dashes I tried to keep a log of what I did. Hope this helps.
—–
Reinstalled External Files Plugin
First went to Settings > Choose Configuration > selected ‘Default settings’Media -> External Sources > Add External Source > Dialog click ‘here’
Select the source -> WebDav -> Install Plugin. Then follows an Error ‘Requested service is a plugin, that is not installed and activate!’
However, clicking ‘Your External Sources’ again, the page displays correctly.Again, Add External Source > Dialog click ‘here’. WebDav is not activated, click on WebDav ‘Activate Plugin’, Dialog ‘Yes, Activate it’. Now a dialog comes up ‘Installation and activatiob has been Executed’. Click ‘Done’.
The ‘Choose file(s) from your WebDAV screen appears. Now fill in:
- Server, Login, Password
- Path proposed value remains unchanged
- Activate ‘Save these credentials as external source’ and click ‘Show Directory’
- Directory is loading … and then directory structure displays.
Select the folder to be synchronized (files in the folder display on the right) and click ‘Save active directory as your external source’ (Note: ‘active directory’ is a bit confusing a term, maybe better ‘selected directory/folder’)
Dialog ‘The external source has been saved’ and click ‘OK’. Now nothing happens (bit confusing, maybe ‘Select another directory’ instead of OK? And add third button ‘Show External sources’).
In WP menu select ‘Your external sources’, now two (!) external sources appear. For both the ‘Synchronization’ is already set to ‘ON’ (maybe better set this to OFF and let the user configure it and then activate it per external source?) One is the selected directory, the second external source is the root folder of the WebDAV (why is this? it was not selected…)
Note: The Synchronization buttons are shown (part of the ‘Default Settings’ i guess, or a remainder of a previous setup?)
Note: The Log-mode in settings is set to ‘log all’, also part of the ‘Default settings’?)In the log a lot of ‘Set capability efml_cap_xxx for the following roles: [“administrator”,”editor”]’ messages appear.
However in Settings -> Permissions all thes seem to be set correctly (Default settings?)Back to External sources, I select ‘Configure’ on the second external source (the one i really selected). Set the following:
- Interval ‘every 15 minutes’
- No filetypes selected, so all should be synchronized
- Target folder ‘MyMusicFiles’ (I have installed CatFolders and defined the foder ‘MyMusicFiles’)
- Checkbox ‘copyright’
Then click ‘Save’, Dialog ‘Configuration Saved’ -> click ‘OK’
In the log another lot of ‘Set capability efml_cap_xxx for the following roles: [“administrator”,”editor”]’ messages appear.
In Settings -> Permissions I now click the ‘Default’ settings button. Dialog ‘Set Cabilities’ and click ‘Yes’. Then click ‘Save Changes’ at the bottom of the page (needed?)Check the log again, and again new the ‘Set capability…’ log entries have appeared. All these are State (i), so now errors apparently.
After 20 minutes: no files have been synchronized.
Then, in ‘Your External Sources’ clicked ‘Now’. Synchronize now? Choose ‘Yes, synchronize now’, synchronization in progress and the ‘An error occurred’, ‘Request timeout’. Clicked ‘OK’.
No files are synchronized to the library. Again, al lot of ‘Set capability… records a re added to the log.
Back to Settings > Permissions and under ‘Permissions for external sources’ i selected explicitly ‘Aministrator’ and ‘Editor’ for the WebDAV service and clicked ‘Save Changes’ at the bottom of the page.
Back to ‘Your External Sources’ and clicked ‘Now’ on the source i wanted to synchronize. Again a ‘request timeout’ occurs.
Final try: disabled all plugins except the ‘External Files…’ plugins.
Back to ‘Your External Sources’ and clicked ‘Now’ on the source i wanted to synchronize. Again a ‘request timeout’ occurs.—
Now I am no longer sure what to do to get this to work. And it seems as if I am further from home than before. What to do? Would it help if I send you the log (how)? We could schedule a call and I can share my screen?
Please advise.
Thank you so much for your feedback. Such feedback is invaluable, even for me as a developer. It’s the only way we can make progress together.
I’ve taken a look at your comments:
Select the source -> WebDAV -> Install Plugin. Then an error message appears: ‘Requested service is a plugin that is not installed and activate!’
When you click on “Install Plugin,” this dialog should actually appear:
https://snipboard.io/ZhOljg.jpg
Didn’t you see this at all? That would be strange and would suggest that something in your project is (probably unintentionally) suppressing these dialogs.
Note: ‘active directory’ is a bit confusing; perhaps ‘selected directory/folder’ would be better.
Thanks. I’ll keep that in mind. As I said: it’s invaluable 🙂
Dialog: ‘The external source has been saved’ and click ‘OK’. Now nothing happens (a bit confusing; perhaps ‘Select another directory’ instead of OK? And add a third button, ‘Show External Sources’).
I renamed the button to “Close Dialog” because users should stay in the current view, as they might want to select other things. I also added the third button – good idea, even though it’s already linked in the text.
For both, the ‘Synchronization’ is already set to ‘ON’ (perhaps it would be better to set this to OFF and let the user configure it and then activate it via an external source?).
This is already the case with a fresh installation. Under Settings > External Files in Media Library > Synchronization, there’s a checkbox “Enable automatic synchronization” which is not selected by default. In your installation, a) synchronization is already enabled, and b) this checkbox is also selected – something I can’t replicate on any new installation (since it’s not programmed that way). But you can influence this behavior right there.
One is the selected directory, the second external source is the root folder of the WebDAV (why is this? It wasn’t selected…).
You checked “Save these credentials as external source” when you first connected to the WebDAV. That’s why this entry was saved as well. 🙂
The log contains a lot of messages like “Set capability efml_cap_xxx for the following roles: [“administrator”,”editor”]”.
It’s strange that you keep seeing this. Permissions are only set when you change them – not automatically. This action isn’t related to file handling, which only checks permissions – it doesn’t set them. You’re only seeing these messages because you still have the log mode set to “all”.
Overall, it seems to me that your reinstallation of both plugins wasn’t complete (although I’m wondering why you did it; it wasn’t necessary). How did you reinstall them? The correct procedure would be: first deactivate WebDAV, then deactivate external files, then delete WebDAV, then delete external files. WordPress doesn’t really allow it any other way. After that, reinstall one thing, then the other.
Given these strange settings, I would recommend starting over. It’s not very helpful to guess here, as it seems things from the previous installation are still present. The plugin also includes a button for this. Under Settings > External Files in Media Library > Advanced, there’s a button for “Reset plugin.” This executes the uninstallation routine, followed by the installation routine – and everything is fresh.
I have installed CatFolders.
Ah, that’s information I didn’t have, and it’s important here.
We could schedule a call and I can share my screen?
Please note that such contact requests are not permitted in this forum. My recommendation, as mentioned above, would be to reset the plugin again. And you can provide a screenshot as described here: https://ww.wp.xz.cn/support/forum-user-guide/block-editor/#adding-screenshots
I just tested importing WebDAV files using CatFolders. It works perfectly for me, both when started manually and automatically via a cron job.
Tip if it still doesn’t work for you even after properly reinstalling the plugin:
- Don’t click “Default Settings”. They are already active after (re-)installation. The button is only meant to help reset settings if you’re using a different configuration or want to revert to the defaults. However, the button doesn’t reset everything like “Reset plugin” does (e.g., only settings, no files).
- After setting up your external source, test the manual synchronization first. This does exactly the same thing as the automatic synchronization – the only difference is the environment (backend with login vs. independent of everything).
- Feel free to share the log entries here as well. At the beginning of each line in the log table, there’s a copy button to copy the individual entry.
- If it still doesn’t work, the website report might also be helpful for me to analyze the issue. You can find it under Tools > Site Health > Info. Just click the button and paste the content into a code block here. This would allow me to see, for example, which plugins you’re using and what your hosting environment looks like, so I can potentially identify anything that might be causing the issue or reproduce it on my end.
You must be logged in to reply to this topic.