Create a shortcut to a Drive file

Shortcuts are files that link to other files on Google Drive. Shortcuts have these characteristics:

  • An application/vnd.google-apps.shortcut MIME type.

  • The ACL for a shortcut inherits the ACL of the parent. The shortcut's ACL cannot be changed directly.

  • A targetId pointing to the target file or folder, also referred to as the "target."

  • A targetMimeType indicating the MIME type the target. The targetMimeType is used to determine the type icon to display. The target’s MIME type is copied to the targetMimeType field when the shortcut is created.

  • The targetId and targetMimeType fields are part of the shortcutDetails field within the Files resource.

  • A shortcut can only have one parent. If a shortcut file is required in other Drive locations, the shortcut file can be copied to the additional locations.

  • When the target is deleted, or when the current user loses access to the target, the user's shortcut pointing to the target breaks.

  • The title of a shortcut can differ from the target. When a shortcut is created, the title of the target is used as the title of the shortcut. After creation, the shortcut's and target's title can be changed independently. If the target's name is changed, previously created shortcuts retain the old title.

  • The MIME type of a shortcut can become stale. While rare, a Blob file’s MIME type changes when a new revision of a different type is uploaded, but any shortcuts pointing to the updated file will retain the original MIME type. For example, if you upload a JPG file to Drive, then upload a new AVI revision, Drive identifies the change and updates the thumbnail for the actual file. However, the shortcut continues to have a JPG thumbnail.

  • In the Google Account Data Export, also known as Google Takeout, shortcuts are represented as Netscape bookmark files containing links to the target.

Create a shortcut

To create a shortcut, set the MIME type to application/vnd.google-apps.shortcut, set the targetId to the file or folder the shortcut should link to, and call Files.create to create a shortcut. The following examples shows how to create a shortcut using a client library:

Python

file_metadata = {
    'name': 'Project Plan',
    'mimeType': 'text/plain'
}
file = drive_service.files().create(body=file_metadata, fields='id').execute()
print('File ID: %s' % file.get('id'))
shortcut_metadata = {
     'Name': 'Shortcut to Project Plan',
     'mimeType': 'application/vnd.google-apps.shortcut',
     'shortcutDetails': {
        'targetId': file.get('id')
     }
}
shortcut = drive_service.files().create(body=shortcut_metadata,
                                    fields='id,shortcutDetails').execute()
print('File ID: %s, Shortcut Target ID: %s, Shortcut Target MIME type: %s' % (
    shortcut.get('id'),
    shortcut.get('shortcutDetails').get('targetId'),
    shortcut.get('shortcutDetails').get('targetMimeType')))

Node.js

var fileMetadata = {
  'name': 'Project Plan',
  'mimeType': 'text/plain'
};
drive.files.create({
  'resource': fileMetadata,
  'fields': 'id'
}, function (err, file) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log('File Id: ' + file.id);
    shortcutMetadata = {
      'name': 'Shortcut to Project Plan',
      'mimeType': 'application/vnd.google-apps.shortcut'
      'shortcutDetails': {
        'targetId': file.id
      }
    };
    drive.files.create({
      'resource': shortcutMetadata,
      'fields': 'id,name,mimeType,shortcutDetails'
    }, function(err, shortcut) {
      if (err) {
        // Handle error
        console.error(err);
      } else {
        console.log('Shortcut Id: ' + shortcut.id +
                    ', Name: ' + shortcut.name +
                    ', target Id: ' + shortcut.shortcutDetails.targetId +
                    ', target MIME type: ' + shortcut.shortcutDetails.targetMimeType);
      }
    }
  }
});

By default, the shortcut is created on the current user's My Drive and shortcuts are only created for files or folders for which the current user has access.

Search for a shortcut

To search for a shortcut, use the query string q with files.list to filter the shortcuts to return.

mimeType operator values

Where:

  • query_term is the query term or field to search upon. To view the query terms that can be used to filter shared drives, refer to Search query terms.
  • operator specifies the condition for the query term. To view which operators you can use with each query term, refer to Query operators.
  • values are the specific values you want to use to filter your search results.

For example, the following query string filters the search to return all shortcuts to spreadsheets:

q: mimeType=’application/vnd.google-apps.shortcut’ AND shortcutDetails.targetMimeType = ‘application/vnd.google-apps.spreadsheet’