下载Google Storage Blob时错误:(接收到内容编码:GZIP,但无法解码.)



我正在使用python下载文件,但是从Google Cloud Storage下载文件时会出现错误。

文件元数据如下:content_type:text/csvcontent_encoding:gzip文件扩展名: *.csv.gz

获得以下例外:异常。ContentDecodingError:"接收到用内容编码的响应:gzip,但无法解码。'

使用以下Python API下载文件。blob.download_to_filename(文件名,start = 100(

问题:1.如果源文件具有以上元数据属性,如何下载?(gzip作为内容编码(2.如何在复制(gsutil cp(时取消压缩文件?

  1. 收到内容编码:GZIP,但未能解码。

您可以通过将接受编码的标头设置为身份:

导入请求

requests.get('http://xxxxx/',headers = {'accept-incoding':'Identity'}(

替代解决方案解决方案是将标头标准化:

if(req.http.Accept-insoding〜" gzip"({

设置req.http.accept-encoding =" gzip";

} else {

unsot req.http.accept-insoding;

}

  1. 看起来没有一种方法可以禁用GSutil CP的自动压缩行为,对于一次性用例,GSUTIL CAT会跳过减压:

$ gsutil cat gs gs gs://bucket/obj.gz>/destination/path/obj.gz.gz

最新更新