"Provider does not support set_last_modified" error
andkrau opened this issue · 6 comments
Attempts to set the last modified date are failing with the error: Provider does not support set_last_modified.
Rolling back to v3.1.1 resolved the issue. I'm using an identical wsgidav.yaml between the two releases.
release: v4.0.1
server: cheroot
client: WinSCP
Please share verbose logs and config file
Config file:
server: "cheroot"
host: 0.0.0.0
port: 8001
block_size: 8192
add_header_MS_Author_Via: true
hotfixes:
emulate_win32_lastmod: false
re_encode_path_info: true
unquote_path_info: true
treat_root_options_as_asterisk: false
#: Modify to customize the WSGI application stack:
middleware_stack:
#- wsgidav.mw.cors.Cors
#- wsgidav.debug_filter.WsgiDavDebugFilter
- wsgidav.error_printer.ErrorPrinter
- wsgidav.http_authenticator.HTTPAuthenticator
#- wsgidav.dir_browser.WsgiDavDirBrowser
- wsgidav.request_resolver.RequestResolver # this must be the last middleware item
# ==============================================================================
# SHARES
mount_path: null
provider_mapping:
"/": "H:/null"
# ==============================================================================
# AUTHENTICATION
http_authenticator:
accept_basic: true
accept_digest: false
default_to_digest: false
trusted_auth_header: null
domain_controller: null
# Additional options for SimpleDomainController only:
simple_dc:
user_mapping:
"*": # default (used for all shares that are not explicitly listed)
"testUser":
password: "testPass"
# Additional options for NTDomainController only:
nt_dc:
preset_domain: null
preset_server: null
# Additional options for PAMDomainController only:
pam_dc:
service: "login"
encoding: "utf-8"
resetcreds: true
# ==============================================================================
# DEBUGGING
#: Set verbosity level (but will be overridden by -v or -q arguments)
verbose: 5
logging:
#: Set logging output format
#: (see https://docs.python.org/3/library/logging.html#logging.Formatter)
logger_date_format: '%H:%M:%S'
logger_format: '%(asctime)s.%(msecs)03d - %(levelname)-8s: %(message)s'
# Example: Add date,thread id, and logger name:
# logger_date_format: '%Y-%m-%d %H:%M:%S'
# logger_format: '%(asctime)s.%(msecs)03d - <%(thread)05d> %(name)-27s %(levelname)-8s: %(message)s'
#: Enable specific module loggers
#: E.g. ['lock_manager', 'property_manager', 'http_authenticator', ...]
# enable_loggers: ['http_authenticator', ]
# Enable max. logging for certain http methods
# E.g. ['COPY', 'DELETE', 'GET', 'HEAD', 'LOCK', 'MOVE', 'OPTIONS', 'PROPFIND', 'PROPPATCH', 'PUT', 'UNLOCK']
debug_methods: []
# Enable max. logging during litmus suite tests that contain certain strings
# E.g. ['lock_excl', 'notowner_modify', 'fail_cond_put_unlocked', ...]
debug_litmus: []
# ----------------------------------------------------------------------------
# WsgiDavDirBrowser
dir_browser:
enable: false
ignore:
- ".DS_Store" # macOS folder meta data
- "Thumbs.db" # Windows image previews
- "._*" # macOS hidden data files
icon: false
response_trailer: true
show_user: false
show_logout: false
davmount: false
ms_sharepoint_support: false
# ----------------------------------------------------------------------------
# Property Manager
property_manager: null
# Optional additional live property modification
mutable_live_props:
- "{DAV:}getlastmodified"
# ----------------------------------------------------------------------------
# Lock Manager
lock_storage: false
Logs:
13:17:26.859 - INFO : WsgiDAV/4.0.1 Python/3.9.9 Windows-10-10.0.17763
13:17:26.860 - INFO : Default encoding: 'utf-8' (file system: 'utf-8')
13:17:26.862 - INFO : Lock manager: None
13:17:26.863 - INFO : Property manager: None
13:17:26.864 - INFO : Domain controller: SimpleDomainController()
13:17:26.865 - INFO : Middleware stack:
13:17:26.866 - INFO : - wsgidav.error_printer.ErrorPrinter
13:17:26.867 - INFO : - wsgidav.http_authenticator.HTTPAuthenticator
13:17:26.868 - INFO : - wsgidav.request_resolver.RequestResolver
13:17:26.869 - INFO : Registered DAV providers by route:
13:17:26.870 - INFO : - '/': FilesystemProvider for path 'H:\null' (Read-Write)
13:17:26.873 - WARNING : Basic authentication is enabled: It is highly recommended to enable SSL.
13:17:27.341 - INFO : Running WsgiDAV/4.0.1 Cheroot/8.6.0 Python 3.9.9
13:17:27.341 - INFO : Serving on http://0.0.0.0:8001 ...
13:17:29.430 - INFO : 192.168.1.222 - testUser - [2022-01-30 19:17:29] "PROPFIND /Green/TestDirectory/" length=84, depth=1, connection="TE", agent="WinSCP/5.19.5 neon/0.31.2", elap=0.011sec -> 207 Multi-Status
13:17:49.791 - DEBUG : Raising DAVError 404 Not Found: /Green/TestDirectory/FF_C1.ROM
13:17:49.793 - DEBUG : Caught (404, '/Green/TestDirectory/FF_C1.ROM')
13:17:49.802 - INFO : 192.168.1.222 - testUser - [2022-01-30 19:17:49] "PROPFIND /Green/TestDirectory/FF_C1.ROM" length=84, depth=0, connection="TE", agent="WinSCP/5.19.5 neon/0.31.2", elap=0.015sec -> 404 Not Found
13:17:51.221 - INFO : 192.168.1.222 - testUser - [2022-01-30 19:17:51] "PUT /Green/TestDirectory/FF_C1.ROM" length=2097152, connection="TE", agent="WinSCP/5.19.5 neon/0.31.2", elap=1.388sec -> 201 Created
13:17:51.258 - WARNING : Provider does not support set_last_modified on /Green/TestDirectory/FF_C1.ROM.
13:17:51.260 - INFO : 192.168.1.222 - testUser - [2022-01-30 19:17:51] "PROPPATCH /Green/TestDirectory/FF_C1.ROM" length=203, depth=0, connection="TE", agent="WinSCP/5.19.5 neon/0.31.2", elap=0.004sec -> 207 Multi-Status
13:17:51.604 - DEBUG : mimetype(/Green/TestDirectory/FF_C1.ROM): None
13:17:51.605 - DEBUG : mimetype(/Green/TestDirectory/FF_C1.ROM): None
13:17:51.606 - DEBUG : mimetype(/Green/TestDirectory/FF_C1.ROM): None
13:17:51.609 - INFO : 192.168.1.222 - testUser - [2022-01-30 19:17:51] "PROPFIND /Green/TestDirectory/" length=84, depth=1, connection="TE", agent="WinSCP/5.19.5 neon/0.31.2", elap=0.304sec -> 207 Multi-Status
Does
hotfixes:
emulate_win32_lastmod: true
help?
No, that did not make a difference. As far as I know, WinSCP uses getlastmodified.
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
Thank you for your contributions.
I had a chance to dig around a little tonight and this incompatibility was introduced with the commit: API enforces some named keyword args (..., *, ...)