从Google云端硬盘下载文件没有问题。我需要限制下载速度,例如512kbps,每秒1024kbps。
尝试使用time.sleep(1)并更改块大小,但它不能完美运行。也许有限制速度的功能。
http = credentials.authorize(httplib2.Http())
drive_service = discovery.build('drive', 'v3', http=http, cache_discovery=False)
request = drive_service.files().get_media(fileId=link)
file = drive_service.files().get(fileId=link).execute()
dosyadi = file['name']
fh = io.FileIO(yazilacakyer, 'wb')
downloader = MediaIoBaseDownload(fh, request, chunksize=1024 * 1024)
time1 = time.time()
done = False
while done is False:
status, done = downloader.next_chunk()
fark = float(time.time() - time1)
time1 = time.time()
print('Download Speed:')
print(self.byteToKb_or_Mb(int(1024/fark)*1024))
答案 0 :(得分:0)
不确定您要实现的目标,但是最好使用http标准中的range request标头将其分拆,而不要占用带宽。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
例如添加标头Range:bytes = 0-1023将使服务器仅返回该数据块。
以后您可以使用多线程来将来一次提取多个块。