2013-07-04 11 views
6

Sto provando a convertire il PDF in qualsiasi formato consentito, ma la risposta non include i collegamenti exportLink dopo il caricamento di un file PDF.Converti PDF in qualsiasi file con l'API di Google Drive

Ho già provato molti modi per gestire per ottenere exportLinks. Altri formati doc possono essere caricati ed esportati con successo. Ho usato il codice di developers.google.com.

media_body = MediaFileUpload(filename, mimetype=mime_type, resumable=False) 
body = {'title': title, 
     'description': description, 
     'mimeType': mime_type, 
     } 
# Set the parent folder. 
if parent_id: 
    body['parents'] = [{'id': parent_id}] 

try: 
    request = service.files().insert(body=body, media_body=media_body) 
    #request.uri = "%s&convert=true&ocr=true" % request.uri 
    #request.uri = "%s&convert=true" % request.uri 
    request.uri = "https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&alt=json&convert=true" 
    logger.debug("Request: %s", request.uri) 
    file_obj = request.execute() 
    # Uncomment the following line to print the File ID 
    # print 'File ID: %s' % file_obj['id'] 
    import json 
    logger.debug('Get file result: %s' % json.dumps(file_obj, indent=4)) 
    return file_obj 

... 
export_links = source_file.get('exportLinks') 
if not export_links: 
    logger.debug('Warning: exportLinks does not exist') 

Perché non vi sono collegamenti di esportazione nella risposta del caricamento del PDF?

Per favore, il team di Google accetta che il PDF possa essere caricato ed esportato dall'API di Drive.

Grazie

[UPD] Ecco una discarica richiesta del httplib2. Come vedo la query è impostata correttamente in base al manuale.

Request: https://www.googleapis.com/upload/drive/v2/files?uploadType=multipart&alt=json&convert=true 
send: 'POST /upload/drive/v2/files?uploadType=multipart&alt=json&convert=true HTTP/1.1\r\n 
Host: www.googleapis.com\r\n 
content-length: 4425\r\n 
accept-encoding: gzip, deflate\r\n 
accept: application/json\r\n 
user-agent: google-api-python-client/1.0\r\n 
content-type: multipart/related; boundary="===============0758269123680398078=="\r\n 
authorization: Bearer ya29.AHES6ZRDT0AJX8a5JN_u_0epF6ZCMGcqwyru1wzj22oVlMO9CfmFzlo\r\n 
\r\n 
--===============0758269123680398078==\nContent-Type: application/json\nMIME-Version: 1.0\n\n{"mimeType": "application/pdf", "description": "", "title": "Short_pdf.pdf"}\n--=============== 

Ecco un Downloadlink nella risposta: "downloadURL": "https://doc-0c-2c-docs.googleusercontent.com/docs/securesc/2sgoib42bclb5coaj85g5574fd2b65bn/2lnqk989jdaepp4b8igdco1j8fu7m9l3/1373040000000/00639208221381605991/00639208221381605991/0By108D1dgCDkX0NFOXV0V2pNd2s?h=16653014193614665626&e=download&gd=true",

+0

La risposta contiene un collegamento per il download? Se è così, la conversione non ha avuto luogo. Inoltre, si prega di impostare parametri di query passando parametri per inserire il metodo: '.insert (body = b, media_body = m, convert = True)' –

+0

Ho aggiornato il post. Si prega di ispezionare ciò che è sbagliato con la richiesta. Inoltre, ho provato come hai suggerito di passare convert param - nessun successo. L'intestazione della richiesta è la stessa dell'aggiornamento. Suppongo tu intenda che il link per il download sia "downloadUrl". Grazie –

risposta

4

Purtroppo Google Drive non prevede funzionalità di conversione per i file PDF tramite l'API di Google Drive.

Solo i documenti nativi di Google (Google Documenti/Fogli/Presentazioni/Disegni) hanno exportLinks che consente di scaricare il documento Google in più formati di esportazione. Tutti gli altri file, in genere file normali come PDF, immagini, ecc., Hanno invece uno downloadUrl che consente di scaricare il file stesso nel suo formato originale.

+0

Ok, grazie. Ragazzi, dovreste aggiornare il manuale piuttosto che le persone hanno evaporato il cervello. Tra l'altro non riesco ancora a trovare nessun downloadlink. C'è downloadUrl (https://developers.google.com/drive/manage-downloads). –

+0

Spiacente, in realtà è downloadUrl, downloadLink era un errore :) – Nivco

+0

Potrebbe dirci quale parte della documentazione si aggiorna. Il documento cita "Scarica ed esporta un documento Google - exportLinks". In questo contesto Google Doc significa: Google Document/Foglio di calcolo/Presentazioni/Disegni. I PDF sono file normali e non Google Documenti si qualifica quindi per "downloadUrl". – Nivco