源代码
import asyncio
import aiohttp
from tqdm import tqdm
import os
class bigfile_download:
def __init__(self, session, url, tmp_path='./down_cache', proxy=None, file_fragment_size = 1024 * 1024 * 2):
self.url = url
self.session = session
self.proxy = proxy
self.filename = url.split('/')[-1]
self.mtd_list = []
self.tmp_path = tmp_path
self.file_fragment_size = file_fragment_size
self.__mkdir(tmp_path)
def __mkdir(self, path):
isExists=os.path.exists(path)
if not isExists:
os.makedirs(path)
print(path+' 创建成功')
return True
else:
print(path + ' 目录已存在')
return False
async def fetch(self, url, method='get', headers = None, retryCount = 3):
r = None
curr_url = url
for i in range(1, retryCount):
if method == 'head':
r = await self.session.head(curr_url, proxy=self.proxy, headers = headers)
else:
r = await self.session