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:
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: .....
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')