2011-11-16 3 views
3

응용 프로그램에서 zip 파일을 만들어 Google Storage에 저장합니다. 나는 zip 파일을 잡아내는 등의 책임을 맡고있는 웹 서버 측에서 작업하고있다. 웹 서비스는 Python App Engine으로 작성된다. 지금까지 자격 증명을 설정하고 자습서를 따라 버킷 내용을 나열 할 수있었습니다. 메타 데이터 및 파일 정보를 읽을 수는 있지만 내용을 ZIP 파일 모듈로 가져올 수 없습니다.App Engine의 Google 스토리지에서 zip 파일을 읽으려면 어떻게해야하나요?

uri = boto.storage_uri(BUCKET_NAME, GOOGLE_STORAGE) 
objs = uri.get_bucket() 
files = [] 
for obj in objs: 
    object_contents = StringIO.StringIO() 
    if obj.get_key(): 
    obj.get_file(object_contents) 
    my_zip = zipfile.ZipFile(object_contents) 
    object_contents.close() 
    files.append(my_zip) 
print len(files) 

나는 점점 오전 : BadZipfile: File is not a zip file

가 어떻게 제대로 내용을 읽을 수 있습니다 this 가이드에 따라 나는 작동하지 않는 것을 자리에서 만난다?

답변

2

이제 Google 스토리지의 개체를 직접 조작 할 수있는 an API이 있습니다. 이를 사용하여 zip 파일에 대한 파일과 유사한 객체를 가져와 zipfile 모듈로 전달하면됩니다.