fix: webdav secure
This commit is contained in:
parent
93b5f85cfd
commit
cd6522b99c
@ -7,6 +7,24 @@ import redis
|
|||||||
import shutil
|
import shutil
|
||||||
from threading import Lock
|
from threading import Lock
|
||||||
from webdav3.client import Client
|
from webdav3.client import Client
|
||||||
|
from requests.structures import CaseInsensitiveDict
|
||||||
|
from webdav3.client import WebDavClient
|
||||||
|
|
||||||
|
def safe_download_file(self, remote_path, local_path, progress=None, progress_args=()):
|
||||||
|
response = self.execute_request(action='download', path=remote_path, headers={'accept-encoding': 'identity'})
|
||||||
|
total = response.headers.get('content-length')
|
||||||
|
if total is None:
|
||||||
|
log_debug(f"⚠️ Skipping file without content-length: {remote_path}")
|
||||||
|
return
|
||||||
|
total = int(total)
|
||||||
|
|
||||||
|
with open(local_path, 'wb') as f:
|
||||||
|
for chunk in response.iter_content(chunk_size=1024):
|
||||||
|
if chunk:
|
||||||
|
f.write(chunk)
|
||||||
|
log_debug(f"✅ Downloaded file: {remote_path} → {local_path}")
|
||||||
|
|
||||||
|
WebDavClient.download_file = safe_download_file
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user