J'ai utilisé un script qui n'était plus géré et qui télécharge l'ensemble de votre Google Drive sur votre espace de stockage local. Je me suis arrangé pour résoudre quelques problèmes de dépréciation, et le script semblait fonctionner correctement, cependant, comme des moments apparemment aléatoires dans mon script, il va se casser, et je vais recevoir l'erreur suivante.httplib2.IncompleteRead: AttributeError: l'objet 'module' n'a pas d'attribut 'IncompleteRead'
File "drive.py", line 169, in download_file
except httplib2.IncompleteRead:
AttributeError: 'module' object has no attribute 'IncompleteRead'
Ce sont les modules que je utilise
import gflags, httplib2, logging, os, pprint, sys, re, time
import pprint
from apiclient.discovery import build
from apiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import AccessTokenRefreshError, flow_from_clientsecrets
from oauth2client.tools import run_flow
Et voici le code qui provoque l'erreur
if is_google_doc(drive_file):
try:
download_url = drive_file['exportLinks']['application/pdf']
except KeyError:
download_url = None
else:
download_url = drive_file['downloadUrl']
if download_url:
try:
resp, content = service._http.request(download_url)
except httplib2.IncompleteRead:
log('Error while reading file %s. Retrying...' % drive_file['title'].replace('/', '_'))
print 'Error while reading file %s. Retrying...' % drive_file['title'].replace('/', '_')
download_file(service, drive_file, dest_path)
return False
if resp.status == 200:
try:
target = open(file_location, 'w+')
except:
log("Could not open file %s for writing. Please check permissions." % file_location)
print "Could not open file %s for writing. Please check permissions." % file_location
return False
target.write(content)
return True
else:
log('An error occurred: %s' % resp)
print 'An error occurred: %s' % resp
return False
else:
# The file doesn't have any content stored on Drive.
return False
Je suppose cette erreur a quelque chose à voir avec la perte de connexion lors du téléchargement, et je ne suis pas familier avec le module httplib2.
Le code complet se trouve here
Thankyou à l'avance à tous ceux qui peuvent faire la lumière dans une solution possible.
Vous voudrez peut-être vérifier cette [SO post] (http://stackoverflow.com/questions/14442222/how-to-handle-incompleteread-in-python) où il a mentionné à propos de jeter dans une boucle try/catch où vous lisez vos liens ou simplement en envoyant une requête HTTP/1.0 dans votre code. [IncompleteRead using httplib] (http://stackoverflow.com/questions/14149100/incompleteread-using-httplib) pourrait aussi aider. – Teyam