fix: header non supported
This commit is contained in:
parent
f546480afa
commit
c26118e831
@ -8,22 +8,24 @@ import shutil
|
|||||||
from threading import Lock
|
from threading import Lock
|
||||||
from webdav3.client import Client
|
from webdav3.client import Client
|
||||||
|
|
||||||
# ✅ Patch direct de la méthode `download_file` dans Client
|
|
||||||
def safe_download_file(self, remote_path, local_path, progress=None, progress_args=()):
|
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'})
|
url = self.get_url(remote_path)
|
||||||
content_length = response.headers.get('content-length')
|
response = self.session.get(url, stream=True, headers={"Accept-Encoding": "identity"})
|
||||||
|
content_length = response.headers.get("Content-Length")
|
||||||
|
|
||||||
if content_length is None:
|
if content_length is None:
|
||||||
print(f"⚠️ Skipping file without content-length: {remote_path}")
|
print(f"⚠️ Skipping file without content-length: {remote_path}")
|
||||||
return
|
return
|
||||||
total = int(content_length)
|
|
||||||
|
|
||||||
|
total = int(content_length)
|
||||||
os.makedirs(os.path.dirname(local_path), exist_ok=True)
|
os.makedirs(os.path.dirname(local_path), exist_ok=True)
|
||||||
with open(local_path, 'wb') as f:
|
|
||||||
|
with open(local_path, "wb") as f:
|
||||||
for chunk in response.iter_content(chunk_size=1024):
|
for chunk in response.iter_content(chunk_size=1024):
|
||||||
if chunk:
|
if chunk:
|
||||||
f.write(chunk)
|
f.write(chunk)
|
||||||
|
|
||||||
# 🔁 Surcharge
|
# 🩹 Patch de la méthode originale
|
||||||
Client.download_file = safe_download_file
|
Client.download_file = safe_download_file
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user