我正在使用aiohttp下载大型文件(每个~150‘m 200’m)。
目前,我正在对每个文件进行如下操作:
async def download_file(session: aiohttp.ClientSession, url: str, dest: str):
chunk_size = 16384
async with session.get(url) as response:
async with aiofiles.open(dest, mode="wb") as f:
async for data in response.content.iter_chunked(chunk_size):
await f.write(data)我创建这个协同机制的多个任务来实现并发。我想知道:
chunk_size
iter_chunked(chunk_size)的最佳价值是什么比只执行data = await response.read()并将其写入磁盘更好?在这种情况下,我如何报告下载进度?
发布于 2022-09-30 15:24:29
块大小的
HEAD请求获取到请求文件的Content-Length的服务器,细分文件大小,并行地向服务器请求每个部分,然后自己合并。https://stackoverflow.com/questions/73789244
复制相似问题