Cloud-Hosting

Google Drive Site Publishing

Mit Drive Site Publishing möchte Google das Webhosting neu erfinden. Wir zeigen, was Sie mit einem kostenlosen Google-Drive-Account jetzt schon alles anstellen können.

Google Drive

© Archiv

Google Drive

Google bietet seit jeher einen Online-Dienst zum Speichern, Erstellen und Bearbeiten ganz gewöhnlicher Office-Dokumente. Nach der Erstellung eines kostenlosen Google-Accounts und der Anmeldung für diesen Dienst konnten Benutzer gigabyteweise Office-Dokumente und andere Dateien in die Cloud übertragen und nach der Erteilung entsprechender Freigaben mit anderen Benutzern gemeinsam verwenden.

Ursprünglich unter dem Namen Google Docs bekannt, trägt der Dienst neuerdings die Bezeichnung Google Drive und ist nun unter der Adresse drive.google.com zu finden. Ende November 2012 stellte Google einen neuen Dienst namens Drive Site Publishing vor.

Google Drive Site Publishing ermöglicht es Webschaffenden, Google-Drive-Verzeichnisse als Websites zu veröffentlichen und (kostenfrei) zu hosten. Der Dienst unterstützt Javascript und andere clientseitige Skriptsprachen, sodass Webgestalter eine ganze Webapplikation aus einem Google-Drive-Verzeichnis heraus (ebenfalls kostenfrei) hosten und ausführen lassen können. Interessanterweise lässt sich sogar eine Javascript-Drive- Applikation direkt von Google Drive heraus ausführen.

Drive Site Publishing, google, cloud, hosting

© Internet Magazin

Eine statische Beispiel-Website auf Google Drive Site Publishing.

Publizieren von Inhalten

Wer Google Drive Site Publishing zum Hosten einer Website nutzen möchte, erstellt im ersten Schritt ein öffentliches Verzeichnis. Alle Inhalte, die Sie in diesem Verzeichnis publizieren möchten, müssen ebenfalls öffentlich zugänglich sein. Die URL dieses Verzeichnisses ist der so genannte Web View Link. Um auf die Website-Assets in diesem Verzeichnis zu verlinken, benutzen Sie ganz einfach die Web-View-Link-Adresse.

Das Erstellen der benötigten Verzeichnisse und das Ablegen von Daten können Sie manuell direkt im Browser oder softwaregesteuert mittels Google Drive SDKs bewerkstelligen. Wer als Browser Google Chrome benutzt, kann die benötigten Dokumente per Drag-und-Drop aus dem Desktop in das öffentliche Verzeichnis der Website im Browser hochladen.

Alternativ können Sie mit einer Desktop-Applikation namens Google Drive die Inhalte eines lokalen Verzeichnisses auf Ihrem Computer oder auf einem Mobilgerät mit der Google Cloud synchronisieren.

Dateien in dem betreffenden Google-Drive-Verzeichnis lassen sich unter Angabe seiner Web-View-Link-Adresse referenzieren. Diese Adresse können Sie leider nicht dem URL-Feld des Browsers entnehmen, wenn Sie das betreffende Drive-Verzeichnis aufrufen, sondern müssen das Dialogfenster der Sharing-Einstellungen benutzen, um die ID des Verzeichnisses in Erfahrung zu bringen. In der Adressleiste des Dialogs finden Sie hier eine Webverknüpfung in der Form https://docs.google.com/folder/d/XXXXXXXXXX/edit.

Diese URLs gilt es wie folgt abzuändern: https://googledrive.com/host/XXXXXXXXXX/. Mit Hilfe dieser Adresse müssen Sie jetzt die Websites im betreffenden Drive-Verzeichnis referenzieren. Die benötigten URLs setzen sich etwa wie folgt zusammen: https://googledrive.com/host/XXXXXXXXXX/Impressum.html.

Drive Site Publishing, google, cloud, hosting

© Internet Magazin

Der kostenlose URL-Kürzungsdienst Gdrive.es hat sich darauf spezialisiert, die langen Web-View-Link-Adressen Ihrer Google-Drive-Dokumente durch kürzere URLs zu ersetzen.

Diese Unterscheidung ist extrem wichtig. Um eine Website als solche im Browser darzustellen, müssen Sie die Web-View-Link-Adresse des Website-Verzeichnisses und ihren Dateinamen referenzieren. Sollten Sie ein HTML-Dokument in der Drive-Ansicht in Ihrem Browser anklicken oder seine URL-Adresse weitergeben, lädt der Browser lediglich die Code-Ansicht der Website.

Relative Verknüpfungen sollten im Übrigen problemlos funktionieren. Leider schließt sich Google Drive Site Publishing mit der Verwendung eigener Domainnamen vorerst komplett aus.

Bei einem Google-Drive-Verzeichnis handelt es sich im Übrigen interessanterweise um eine Datei mit dem MIME-Typ application/vnd.google-apps.folder. Metadaten wie ebendiese Information und andere Eigenschaften wie die Benutzerrechte verzeichnet Google Drive in einer so genannten Ressource. Den Inhalt dieser Ressource können Sie unter Verwendung von Methoden aus dem Drive SDK in einer der unterstützten Skriptsprachen auslesen.

Ganz anders als im Falle von Googles Sites-Diensten (verfügbar unter sites.google.com) steht es Ihnen bei Google Drive Site Publishing frei, eigenes HTML hochzuladen. Im öffentlichen Verzeichnis Ihrer Website dürfen sich allerdings nur statische Webdokumente befinden, zum Beispiel HTML- und CSS-Dateien oder Bilder.

Zwar können Sie mittels der Google App Engine sogar dynamische Websites umsetzen, doch in diesem Falle müssten Sie eine kommerzielle Lösung von Google in Anspruch nehmen.

Gemäß der aktuellen Einstellung in der robots.txt-Datei unter https://googledrive. com/robots.txt dürfen Bots die öffentlichen Verzeichnisse indizieren. Um diese Standardeinstellung zu verändern, können Sie im öffentlichen Verzeichnis Ihrer Website auf Google Drive eine eigene robots.txt-Datei ablegen.

Google Drive SDK

Ein öffentliches Verzeichnis, welches den Konventionen von Google Drive Site Publishing Folge leistet, können Sie selbstverständlich auch programmgesteuert erzeugen. Google stellt hierzu entsprechende Funktionen über das eigene Drive SDK bereit. Sechs verschiedene Ansätze stehen zur Verfügung, darunter Java, Python, PHP, Ruby, Javascript und das .NET-Framework.

In PHP gelingt es zum Beispiel mittels:

function createPublicFolder($service,
$folderName) {
$file = new Google_DriveFile();
$file->setTitle($folderName);
$file->setMimeType('Aapplication/vnd.
google-apps.folder');
$createdFile = $service->files->insert($file, array('AmimeType' =>
'Aapplication/vnd.google-apps.folder',
));
$permission = new Google_Permission();
$permission->setValue(,');
$permission->setType(,');
$permission->setRole('reader');
$service->permissions->insert(
$createdFile->getId(), $permission);
return $file;
}

Das Skript erstellt eine Datei mit dem MIME-Typ application/vnd.google-apps.folder und stellt die korrekten Zugriffsrechte ein. Das Skript setzt hierzu den Accounttyp auf anyone und die so genannte Role auf reader. In Javascript sieht es so aus:

function createPublicFolder
(folderName) {
var body = {
,title': folderName,
,mimeType': "application/vnd.google-
apps.folder"
};
var request = gapi.client.drive.files.
insert({
,resource': body
});
request.execute(function(resp) {
console.log(,Folder ID: , + resp.id);
var permissionBody = {
,value': ,', ,type': ,anyone',
,role': ,reader'
};
var permissionRequest = gapi.client.
drive.permissions.insert({
,fileId': resp.id, ,resource':
permissionBody
});
permissionRequest.
execute(function(resp) { });
});
}

und schließlich in .NET:

private static File
createPublicFolder(DriveService service, String folderName) {
File body = new File();
body.Title = folderName;
body.MimeType = "application/vnd.
google-apps.folder";
File file = service.Files.
Insert(body).Fetch();
Permission permission = new
Permission();
permission.Value = "";
permission.Type = "anyone";
permission.Role = "reader";
service.Permissions.
Insert(permission, file.Id).Fetch();
return file;
}

Der Einsatz der Funktion Files.Insert() fördert die Ausgabe der Web-View-Link-Adresse zu Tage:

"Web View Link": "https://googledrive.com/host/A1B2C3D4E5F6G7H8J9"

Wann immer Sie die Web-View-Link-Adresse Ihrer jeweiligen Site ermitteln möchten, sollten Sie einen Aufruf der Drive-API tätigen, denn nur diese Methode ist von Google offiziell dokumentiert.

Berechtigungen

Für jede Datei und jedes Verzeichnis in Google Drive existiert eine Liste von Berechtigungen. Jede solche Berechtigung legt die Eigenschaften type, role und value für das betreffende Objekt fest. Die Eigenschaft type beschränkt den Zugriff auf eine Kategorie von Benutzern.

Die Eigenschaft value legt fest, welche Benutzer der jeweiligen Kategorie berechtigt sind, um Zugriff auf das Objekt zu erhalten. Die Eigenschaft role legt die zulässigen Aufgaben fest, die der betreffende Benutzer ausführen darf.

Hierzu gehören solche Aktivitäten wie das Lesen oder das Bearbeiten von Eigenschaften oder Inhalten einer Datei, das Auflisten der Inhalte in einem Verzeichnis oder das Hinzufügen von Kommentaren. Google Drive erlaubt es Ihnen, die gemeinsame Nutzung von Dateien und Verzeichnissen zwischen Benutzern softwaregesteuert zu koordinieren. So könnten Sie zum Beispiel die Anzeige des Share-Dialogs durch eine Website mit Hilfe von Javascript auslösen:

<head><!-- sonstige Header-Inhalte --><script type="text/javascript"
src="https://apis.google.com/js/api.js"></script><script type="text/javascript">
init = function() {
s = new gapi.drive.share.
ShareClient(,<IHRE_APP_ID>');
s.setItemIds(["<DATEI_ID>"]);
}
window.onload = function() {
gapi.load(,drive-share', init);
}</script></head>

Beim Auslöserereignis könnte es sich beispielsweise um das Aktivieren einer Schaltfläche handeln. Diese ließe sich mit Hilfe einer Zeile wie

<button onclick="s.
showSettingsDialog()">An andere
Benutzer freigeben</button>

im body-Abschnitt der Seite ins Leben rufen. Damit das Skript funktioniert, müssten allerdings mehrere Anforderungen erfüllt sein. Der aktuelle Benutzer muss angemeldet sein, die App installiert haben und die Sharing-Funktion von der für Ihre Drive-App registrierten (also vertrauenswürdigen) URL aufrufen.

Um eine Drive-App zu entwickeln, müssen Sie diese zuerst unter der Adresse https://code. google.com/apis/console/?pli=1 bei Google registrieren und die benötigten APIs aktivieren, darunter auf jeden Fall die beiden Einträge Drive API und Drive SDK.

In der Registerkarte API-Access erstellen Sie dann die benötigten Zugangsschlüssel ganz einfach unter Verwendung der Schaltfläche Create an OAuth 2.0 client ID. Danach konfigurieren Sie Ihr API-Projekt für die Verwendung des Drive SDK.

Dieser Vorgang umfasst das Erstellen der benötigten App-Icons, die Einrichtung der OAuth-Client-ID und der vertrauenswürdigen URL (der sogenannten Open URL). Danach sollten Sie mindestens einen Benutzer-Account zur Verfügung haben, in dem Sie Ihre Drive-App testweise einrichten können.

Fazit

Google ist als ein innovatives Unternehmen dafür bekannt, immer neue Ideen auszuprobieren. Google Drive Site Publishing liegt technisch gesehen zwischen Amazon AWS, welches ein umfangreiches Spektrum an professionellen SaaS-Diensten bietet, und den vergleichsweise simplen "Öffentlichen Ordnern" von Dropbox.

Der größte Vorteil von Google Drive Site Publishing besteht in der Anbindung an Google Drive und der Verfügbarkeit von Google Drive SDK für die Entwicklung von Webanwendungen. Dank des des Google veröffentlichten Drive SDK können Sie Web-Apps schreiben, die mit Google Drive kommunizieren, und Ihren Benutzern erweiterte Funktionen bereitstellen. So könnten Sie zum Beispiel eine eigene Blogsoftware schreiben oder gemeinsam genutzte Dokumente skriptgesteuert aktualisieren.

Mehr zum Thema

internet, apple, safari, web-apps, ios, remote debugging, tipps, tricks