German Umlauts (äöü) still not working via WebDAV

Hello there!

Sadly I have problems with using German umlaut characters in file names, when uploading them via SeafDav.
Trying to do so will either result in an error, or in a 0 Byte file.

This topic got discussed multiple times on this forum in 2017 and these posts got closed because the developers announced a fix in version 7.1.
Sadly I still have this problem with Seafile Pro 7.1.19 and the newly installed version Seafile Pro 8.0.11.

Can anyone help me with this problem?

Thank you very much
Marvin

Welcome to the Seafile Community Forum!

I just tested the upload of multiple files containing German “umlaute” via WebDAV. It worked, plain and simple.

What did I do: I connected Seafile as a network share in my Windows Explorer and then dropped the files in different libraries. Then I checked on Seahub if the files had arrived safe and sound - and they did. I could preview them in Seahub.

I use Seafile Pro 8.0.11.

Hi :wave:

Thank you for your testing. I tested my instance with two setups so far:

  • the Nautilus file explorer for Linux
  • the WebDAV integration of the iOS note taking app Notability

Both of which have the aforementioned issue.

I just tried to add it as a network location to Windows (Win 10 Pro, 20H2) but even stranger, I wasn‘t even able to login.
Windows finds the WebDAV instance behind the URL and prompts me for the login credentials; I enter my email and WebDAV password; and then Windows shows me a message, this location may not appear to be valid.

Logging in to the WebDAV instance via Firefox works fine as well but I can’t Test the umlaut problem because I can’t upload via the web view.

My Seafile Setup is as follows:

  • Debian Server
  • Nginx as reverse proxy (SSL using Let‘s Encrypt certificate)
  • Seafile Pro Docker Setup (official docker-compose.yml, no changes besides passwords)

I hope you (or someone else) can help me with my setup.

Have you considered taking a look in the seafdav.log?

Good call!
I just played it through. I created a note in Notability named “Tüüüst” (don’t question it :smile: ), which would then automatically get backed up as a PDF to the WebDAV server.

The seafdav.log states an Internel Server Error with less information than I would have hoped for. Here is the relevent part of the Log:

seafdav.log
2021-10-15 00:43:25.864 - <139921761158912> wsgidav.error_printer       ERROR   :  Caught HTTPRequestException(HTTP_INTERNAL_ERROR)
Traceback (most recent call last):
  File "/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/error_printer.py", line 52, in __call__
    for v in app_iter:
  File "/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/request_resolver.py", line 213, in __call__
    for v in app_iter:
  File "/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/request_server.py", line 126, in __call__
    app_iter = provider.custom_request_handler(environ, start_response, method)
  File "/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/dav_provider.py", line 1525, in custom_request_handler
    return default_handler(environ, start_response)
  File "/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/request_server.py", line 780, in do_PUT
    res = parentRes.create_empty_resource(util.get_uri_name(path))
  File "/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/seafile_dav_provider.py", line 457, in create_empty_resource
    raise DAVError(HTTP_INTERNAL_ERROR)
wsgidav.dav_error.DAVError: DAVError(500 Internal Server Error: An internal server error occurred)

2021-10-15 00:43:25.864 - <139921761158912> wsgidav.error_printer       ERROR   :  e.src_exception:
None
2021-10-15 00:43:25.864 - <139921761158912> wsgidav.wsgidav_app         INFO    :  127.0.0.1 - user@login.dev - [2021-10-14 22:43:25] "PUT /Backup/Notability/A116 - Angewandte Analysis/Tüüüst.pdf" length=128178, elap=0.068sec -> 500 Internal Server Error

The other logs weren’t any more helpful than that either. The seafevents.log just says the file has been added (which is true, it’s just empty) and the other logs do not mention anything of this.

I hope this helps you more then it helps me.

Kind regards
Marvin

We’ll have a look at this.

@m_te We may have solved this encoding issue in 9.0.4 version. You can have a try when it’s released this week.

That is great news! :slight_smile: I will definitely try it later this week

Hello Jonathan,
I am sorry that I wasn‘t able to fully test your fix, yet. A few weeks ago I ran the update and today I could finally test uploading files with umlaut letters.

The behavior is improved, but sadly not quite right, yet:
Uploading the file at first still creates a 0 bytes file and returns an error to the client. Reuploading this same file (which by now exists - just without contents) then works. The empty file get‘s its contents on the second try.

I am currently running Seafile Pro 9.0.5 using your official docker-compose setup.

Do you still have error logs in seafdav.log?