@db.transactional
  def _get_content(self, gcs_file):
    content = ''
    previous_end = 0
    error_msg = ''
    for partial in _AE_GCSPartialFile_.all().ancestor(gcs_file).order('start'):
      if not error_msg:
        if partial.start < previous_end:
          error_msg = 'File is corrupted due to missing chunks.'
        elif partial.start > previous_end:
          error_msg = 'File is corrupted due to overlapping chunks'
        previous_end = partial.end
        content += self.blob_storage.OpenBlob(partial.partial_content).read()
        self.blob_storage.DeleteBlob(partial.partial_content)
      partial.delete()
    if error_msg:
      gcs_file.delete()
      content = ''
    return error_msg, content
Aggregate all partial content of the gcs_file.
dataset/ETHPy150Open AppScale/appscale/AppServer/google/appengine/ext/cloudstorage/cloudstorage_stub.py/CloudStorageStub._get_content