Use account email not login id, there could be webdav specific password if your server is configured to use it instead account password, you would see that at seahub profile setting as âWebDav Passwordâ, if you donât see that there then webdav password is same as account password.
Whats your seafdav.conf file content ?
Thank you very much for your kind answersďź
seafdav.log:
seafdav.access.log
my seafdav.conf follows, is it any else have not configured?
[WEBDAV]
enabled = true
port = 8080
# fastcgi = false
# share_name = /seafdav
share_name = /drive
try this config:
log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';
location /drive { # trailing slash produce unnecessary implicit redirect
set $dest $http_destination;
# you had wrong port 8888 instead 8080 in your config here you don't have to specify it
if ( $dest ~* ^https?://[^/]+(?<destination_match>/drive/.+)$ ) {
set $dest $destination_match;
}
proxy_set_header Destination $dest;
proxy_pass http://127.0.0.1:8080/drive; # you were missing the share_name here
proxy_set_header Host $http_host; # variable $host does not contain port
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1200s;
client_max_body_size 0;
proxy_buffering off;
proxy_request_buffering off;
# your logs seems old, to keep logings:
access_log /var/log/nginx/seafdav.access.log seafileformat;
error_log /var/log/nginx/seafdav.error.log;
# note that seafileformat has to be defined with log_format directive
}
thanks~
I have try it and it is can not login too!
I use the port 8888 , because i have configed it in nginx listening ports.
have you restarted your nginx server ? what in your logs now ? btw in case your server is running long time, webdav is linked with both seahub and seafile server, when you change config in seafdav.conf you have to restart both.
yearh, i have restart the nginx and seafile-servers
seahub server too ? like this:
./seafile.sh stop
./seahub.sh stop
./seafile.sh start
./seahub.sh start
iâm mentioning this because i had strange issue before when one of the server perserved some information cached, stoping them both was required
now i see you had proxy_http_version
in config before for good reason, its missing in the one i posted
2022-05-11 02:29:17.246 - <140207437379328> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:29:17] "GET /" elap=0.000sec -> 401 Not Authorized
2022-05-11 02:34:42.928 - <139986100471616> wsgidav.dc.seahub_db INFO : Init seahub database...
2022-05-11 02:34:43.356 - <139986100471616> wsgidav.wsgidav_app INFO : WsgiDAV/3.0.4 Python/3.8.10 Linux-5.4.0-109-generic-x86_64-with-glibc2.29
2022-05-11 02:34:43.357 - <139986100471616> wsgidav.wsgidav_app INFO : Lock manager: LockManager(LockStorageDict)
2022-05-11 02:34:43.357 - <139986100471616> wsgidav.wsgidav_app INFO : Property manager: None
2022-05-11 02:34:43.357 - <139986100471616> wsgidav.wsgidav_app INFO : Domain controller: SeafileDomainController()
2022-05-11 02:34:43.357 - <139986100471616> wsgidav.wsgidav_app INFO : Registered DAV providers by route:
2022-05-11 02:34:43.357 - <139986100471616> wsgidav.wsgidav_app INFO : - '/:dir_browser': FilesystemProvider for path '/opt/seafile/seafile-pro-server-8.0.11/seahub/thirdpart/wsgidav/dir_browser/htdocs' (Read-Only)
2022-05-11 02:34:43.358 - <139986100471616> wsgidav.wsgidav_app INFO : - '/drive': SeafileProvider for Seafile (Read-Write)
2022-05-11 02:34:43.358 - <139986100471616> wsgidav.wsgidav_app WARNING : Basic authentication is enabled: It is highly recommended to enable SSL.
2022-05-11 02:34:43.358 - <139986100471616> wsgidav WARNING : Could not import lxml: using xml instead (up to 10% slower). Consider `pip install lxml`(see https://pypi.python.org/pypi/lxml).
2022-05-11 02:34:55.150 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:34:55] "GET " elap=0.000sec -> 401 Not Authorized
2022-05-11 02:34:56.330 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:34:56] "GET " elap=0.000sec -> 401 Not Authorized
2022-05-11 02:34:59.670 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:34:59] "GET " elap=0.000sec -> 401 Not Authorized
2022-05-11 02:35:16.465 - <139986053109504> wsgidav.dc.domain_controller WARNING : Failed to login: type object 'constance_config' has no attribute 'constance_key'
2022-05-11 02:35:16.466 - <139986053109504> wsgidav.http_authenticator WARNING : Authentication (basic) failed for user xxx.gmail.com', realm 'Seafile Authentication'.
2022-05-11 02:35:16.466 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:35:16] "GET " elap=0.004sec -> 401 Not Authorized
2022-05-11 02:35:19.754 - <139986053109504> wsgidav.dc.domain_controller WARNING : Failed to login: type object 'constance_config' has no attribute 'constance_key'
2022-05-11 02:35:19.755 - <139986053109504> wsgidav.http_authenticator WARNING : Authentication (basic) failed for user 'xxx.gmail.com', realm 'Seafile Authentication'.
2022-05-11 02:35:19.755 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:35:19] "GET " elap=0.001sec -> 401 Not Authorized
2022-05-11 02:35:21.099 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:35:21] "GET " elap=0.000sec -> 401 Not Authorized
2022-05-11 02:37:15.783 - <139986053109504> wsgidav.wsgidav_app INFO : 127.0.0.1 - (anonymous) - [2022-05-10 18:37:15] "GET /" length=0, elap=0.000sec -> 401 Not Authorized
update logs please
in your logs you are trying to access the /seafdav instead /drive
$ ./seafile.sh start
** Message: 02:34:31.227: seafile-controller.c(932): loading seafdav config from /opt/seafile/conf/seafdav.conf
2022-05-11 02:34:31 ../common/seaf-utils.c(409): Use database Mysql
2022-05-11 02:34:31 http-server.c(230): fileserver: worker_threads = 10
2022-05-11 02:34:31 http-server.c(243): fileserver: backlog = 32
2022-05-11 02:34:31 http-server.c(258): fileserver: fixed_block_size = 2097152
2022-05-11 02:34:31 http-server.c(273): fileserver: web_token_expire_time = 3600
2022-05-11 02:34:31 http-server.c(288): fileserver: max_indexing_threads = 10
2022-05-11 02:34:31 http-server.c(303): fileserver: max_index_processing_threads= 3
2022-05-11 02:34:31 http-server.c(325): fileserver: cluster_shared_temp_file_mode = 600
2022-05-11 02:34:31 http-server.c(403): fileserver: enable_async_indexing = 0
2022-05-11 02:34:31 http-server.c(415): fileserver: async_indexing_threshold = 700
2022-05-11 02:34:31 http-server.c(427): fileserver: fs_id_list_request_timeout = 300
2022-05-11 02:34:31 http-server.c(440): fileserver: max_sync_file_count = 100000
Starting seafile server, please wait ...
** Message: 02:34:31.258: seafile-controller.c(932): loading seafdav config from /opt/seafile/conf/seafdav.conf
Seafile server started
Done.
$ ./seahub.sh start
LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...
Seahub is started
Done.
do you have enabled two factor authentication ?
two factor authentication i have not configured
in the proxy_pass http://127.0.0.1:8080/drive;
the /drive
is share_name and it must match the share_name = /drive
in seafdav.conf, in case you are trying original âseafdavâ nginx config, btw the original will not work since you are using ssl
but the error in your log âFailed to login: type object âconstance_configâ has no attribute âconstance_keyââ is related to the seahub web settings itself when there is check for two factor authorization
you could try to enable and disable two factor authorization or adding ENABLE_SETTINGS_VIA_WEB = False
to the seahub_settings.py
to test if anything changes
Great,! It is working now!
Thank you very much!Thank you for your enthusiastic helpďź
This is the right answer:
Adding ENABLE_SETTINGS_VIA_WEB = False to the seahub_settings.py
The nginx config followsďź
location /drive { # trailing slash produce unnecessary implicit redirect
set $dest $http_destination;
# you had wrong port 8888 instead 8080 in your config here you don't have to specify it
if ( $dest ~* ^https?://[^/]+(?<destination_match>/drive/.+)$ ) {
set $dest $destination_match;
}
proxy_set_header Destination $dest;
proxy_pass http://127.0.0.1:8080/drive; # you were missing the share_name here
proxy_set_header Host $http_host; # variable $host does not contain port
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1200s;
client_max_body_size 0;
proxy_buffering off;
proxy_request_buffering off;
}
i would say its just partial solution, you disabled convenient way of setting your server via web, guess the real issue could be: unapplied update script, bug in server application or data corruption, its definitely kind of internal error, unrelated to configuration. changelog seems to not mention anything directly related to this, but update worth a try (even for other reasons like security etc).
yeah, the error is caused by my poor understanding of the seafile configuration, even 2fa i am still not good at~