From fe33afbda80a65fb70cfff2b2e07cdfa02579305 Mon Sep 17 00:00:00 2001 From: zhaohang Date: Tue, 26 Aug 2025 11:03:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=87=BD=E6=95=B0=E5=9C=88?= =?UTF-8?q?=E5=A4=8D=E6=9D=82=E5=BA=A6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhaohang --- prebuilts_service/pool_downloader.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/prebuilts_service/pool_downloader.py b/prebuilts_service/pool_downloader.py index e59b1da1ba..1618bf76df 100644 --- a/prebuilts_service/pool_downloader.py +++ b/prebuilts_service/pool_downloader.py @@ -169,14 +169,16 @@ class PoolDownloader: if progress: progress.update(progress_task_id, total=total_size) progress.start_task(progress_task_id) - - with open(local_path, "wb") as dest_file: - for chunk in response.iter_content(chunk_size=buffer_size): - if chunk: # 过滤掉保持连接的chunk - dest_file.write(chunk) - self._update_progress(progress_task_id, len(chunk)) + self._save_to_local(response, local_path, buffer_size, progress_task_id) self._adaptive_print(f"Downloaded {local_path}") + def _save_to_local(self, response: requests.Response, local_path: str, buffer_size: int, progress_task_id): + with os.fdopen(os.open(local_path, os.O_WRONLY | os.O_CREAT | os.O_TRUNC, mode=0o640), 'wb') as dest_file: + for chunk in response.iter_content(chunk_size=buffer_size): + if chunk: # 过滤掉保持连接的chunk + dest_file.write(chunk) + self._update_progress(progress_task_id, len(chunk)) + def _update_progress(self, task_id, advance): if self.progress: self.progress.update(task_id, advance=advance) -- Gitee