Publish Website Content

Publish Website Content







Google Drive lets you publish a directory as a website. You can insert static web assets such as HTML, CSS, and image files in a publicly shared folder, and then serve those files directly to users via file names in a relative path. Drive supports JavaScript and other client-side scripting languages, so it's even possible to run a JavaScript Drive app directly from Drive.


The requirements to publish are:
  • The folder containing site assets must be public, or "Public on the web." Assets added to public folders must also be public on the web.
  • Link to the files contained in the folder using the webViewLink folder ID plus the path to the file.

Creating a public folder

To create a public folder programmatically, you'll need to insert a "file" of the MIME type application/vnd.google-apps.folder (a type reserved for folders in Drive) and then set the appropriate permissions. The account type must be set to anyone, and the role must be reader.








The following samples demonstrate how to create a public folder using the supported client libraries.





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) { });
 
});
}
The key to Drive's built-in site publishing is the webViewLink provided in the files resource. When you insert a public folder using files.insert, the response contains a webViewLink entry that looks something like this:
 "webViewLink": "https://googledrive.com/host/A1B2C3D4E5F6G7H8J9"






Once it has this URL, your app can use it to provide a link to contents in the folder. For example, a link to kittens.jpg in an images subfolder could be
 https://googledrive.com/host/A1B2C3D4E5F6G7H8J9/images/kittens.jpg
You can access the hierarchy of web assets in the folder using file names and relative paths instead of fileId values. If you provided a link to anindex.html file in the folder that contains an image link for kittens.jpg, then the page displays the image within the page as expected. If you link directly to a folder that lacks a valid index.html file, Drive displays a simple list of the folder's contents.

Extending basic site publishing

The ability to link to files this way opens lots of possibilities for Drive app developers. Writing a blogging tool, creating a process to publish updates to shared docs, outputting images in a folder in a gallery page — any Drive use case that involves presenting a file in a browser can benefit from site publishing. For a larger-scale project, consider the potential to create a site-building IDE for Drive users.

Không có nhận xét nào

Được tạo bởi Blogger.