从Google云端存储下载的损坏的GZIP文件

时间:2016-09-07 02:05:57

标签: python gzip google-cloud-storage

当我从存储平台Web UI下载存储在Google云端存储中的存储桶中的GZIP文件时,一切顺利,我可以毫无问题地解压缩该文件。

然而,当我使用googleapiclient和Python下载文件时,我无法解压缩它。 7-Zip表示该文件已损坏。 我的代码:

import io
from apiclient.http import MediaIoBaseDownload
from googleapiclient import http
bucket='bqtoredshiftdaily'

out_file=os.path.join(current_dir,process_name,"Upload",gcsfile.replace("/", "_"))

with open(out_file, 'w') as f:

    req = gcs_service.objects().get_media(bucket=bucket, object=gcsfile)

    downloader = http.MediaIoBaseDownload(f, req)

    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print("Download {}%.".format(int(status.progress() * 100)))

下载成功但正如我所说,我无法解压缩下载的GZIP文件。 知道为什么吗?

1 个答案:

答案 0 :(得分:1)

我将输出文件更改为二进制文件并解决了它:

with open(out_file, 'wb') as f:

而不是:

with open(out_file, 'w') as f: