IT-Jobs, die dich glücklich machen

Download-Links für (PDF-) Dokumente in Google Drive

Ein Tipp für Entwickler, die automatisiert geteilte Dokumente aus der Google Cloud herunterladen möchten.

Bei Jobpushy suchen und lesen wir unsere IT-Stellenangebote aus ganz unterschiedlichen Quellen. So bieten wir u.a. unseren Kunden an, ihre Jobbeschreibungen als PDF direkt aus der Cloud zu lesen. Bei Google Drive gab es ein Überraschung. Bei Verwendung der Teilen- bzw. Share-Funktion, wird kein Download-Link erzeugt, sondern ein Link auf den Google eigenen Viewer:


Teilen/Sharing von Google Docs
Freigabe eines PDF-Dokumentes durch "Teile-Funktion"

Somit erhält man beim Aufruf der Share-URL kein PDF-Dokument, sondern ein HTML-Dokument, welches den Code des Google-Viewers beinhaltet:

HTTP/2.0 200 OK
content-type: text/html; charset=utf-8
.....
<!DOCTYPE html><html><head><meta name="google" content="notranslate"><meta http-equiv="X-UA-Compatible" content="IE=edge;"><style nonce="cijQZC28OpvV5tfUCcG/kCYnPIg">@font-face{font-family: .....

Mache aus der Share-URL eine Download-URL


Glücklicherweise gibt es einen einfachen Trick, um die URL in eine echte Download-URL zu wandeln:

Die generierte URL

https://drive.google.com/file/d/<DOC_HASH>/view

in folgenden Link umwandeln

https://drive.google.com/uc?export=download&id=<DOC_HASH>

Schon klappt es !


Das ganz kann natürlich sehr einfach über eine Regex automatisiert werden. Hier der Groovy-Code, den wir verwenden:


url = url.replaceAll('(https://drive\\.google\\.com)/file/d/([^/]+?)/view.*','$1/uc?export=download&id=$2')
Für Hinweise, Feedback oder Fragen kontaktiere uns bitte via Twitter@Jobpushy, unserem Slack Workspace oder über unsere sonstigen Kontaktangaben.