[downloader.http] implement file-specific HTTP headers

pull/511/head
Mike Fährmann 5 years ago
parent 977026c5ad
commit bbbeff4c41
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -77,12 +77,15 @@ class HttpDownloader(DownloaderBase):
time.sleep(min(2 ** (tries-1), 1800))
tries += 1
headers = {}
# check for .part file
filesize = pathfmt.part_size()
if filesize:
headers = {"Range": "bytes={}-".format(filesize)}
else:
headers = None
headers["Range"] = "bytes={}-".format(filesize)
# file-specific headers
extra = pathfmt.kwdict.get("_http_headers")
if extra:
headers.update(extra)
# connect to (remote) source
try:

@ -189,7 +189,7 @@ class ResultJob(job.DownloadJob):
self._update_url(url)
self._update_kwdict(kwdict)
self._update_archive(kwdict)
self._update_content(url)
self._update_content(url, kwdict)
self.format_filename(kwdict)
def handle_directory(self, kwdict):
@ -217,9 +217,10 @@ class ResultJob(job.DownloadJob):
self.archive_list.append(archive_id)
self.archive_hash.update(archive_id.encode())
def _update_content(self, url):
def _update_content(self, url, kwdict):
if self.content:
scheme = url.partition(":")[0]
self.fileobj.kwdict = kwdict
self.get_downloader(scheme).download(url, self.fileobj)

Loading…
Cancel
Save