2016-09-07 5 views
0

Wenn ich eine GZIP-Datei in einem Bucket in Google Cloud Storage von der Webbenutzeroberfläche der Speicherplattform herunterlade, funktioniert alles und ich kann die Datei problemlos entpacken.Beschädigte GZIP-Datei von Google Cloud Storage heruntergeladen

Wenn ich jedoch googleapiclient mit Python verwende, um die Datei herunterzuladen, kann ich sie nicht entpacken. 7-Zip sagt, dass die Datei defekt ist. Mein Code:

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))) 

Der Download gelingt es aber wie gesagt, ich kann nicht die heruntergeladene GZIP-Datei entpacken. Irgendeine Idee warum?

Antwort

1

änderte ich die Ausgabedatei zu binären und es löste es:

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

statt:

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