按块从GCS下载文件(从字节)

2024-04-16 15:50:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的谷歌云存储桶中有许多.rar文件,我正试图一个接一个地下载它们,解析它们并在本地删除它们

有时连接丢失,然后我想从停止的位置继续下载,但由于某种原因,下载完成后,.rar文件已损坏

这是我的Python代码:

def download_gcs_file(blob):
    start = None
    to_download_path = os.path.join('/downloads', blob.name)
    if os.path.exists(to_download_path):
        start = os.path.getsize(to_download_path)
    blob.download_to_filename(
        filename=to_download_path,
        start=start,
    )

    return to_download_path

if __name__ == '__main__':
    retry.api.retry_call(
        f=download_gcs_file,
        tries=-1,
        delay=5,
        exceptions=(
            requests.exceptions.ChunkedEncodingError,
            requests.exceptions.ReadTimeout,
            requests.exceptions.ConnectionError,
        ),
        fkwargs={
            'blob': blob,
        },
  • 注意-远程文件没有损坏,我手动下载了它,它是有效的.rar文件

Tags: 文件topathnameifosdownloadfilename
1条回答
网友
1楼 · 发布于 2024-04-16 15:50:07

我认为如果不使用官方SDK,这是不可能的,我建议您尝试使用它,因为它是容错的,将重试并恢复正在自动进行的下载

您可以在本documentation中找到使用官方Python SDK的示例实现

相关问题 更多 >