【问题标题】:Python Google Drive Api limit download speedPython Google Drive Api 限制下载速度
【发布时间】:2019-12-13 00:50:30
【问题描述】:

从 Google Drive 下载文件没有问题。我需要限制下载速度,例如每秒 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))

【问题讨论】:

    标签: python download google-drive-api download-speed


    【解决方案1】:

    不确定您要达到什么目的,但也许最好使用 http 标准中的范围请求标头将其分部分提取,而不是使用带宽。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests

    例如,添加标头 Range: bytes=0-1023 将使服务器仅返回该数据块。

    以后你可以多线程来一次提取多个块。

    【讨论】:

    • 我可以从谷歌驱动器下载文件。我想限制下载速度(例如最大 1024kbps)。
    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2016-11-14
    相关资源
    最近更新 更多