ドライブのファイルへのショートカットを作成する

ショートカットとは、Google ドライブ上の他のファイルやフォルダにリンクするファイルのことです。 ショートカットには次の特徴があります。

  • application/vnd.google-apps.shortcut MIME タイプ。詳しくは、Google Workspace と Google ドライブでサポートされている MIME タイプをご覧ください。

  • ショートカットの ACL は親の ACL を継承します。ショートカットの ACL を直接変更することはできません。

  • ターゲット ファイルまたはフォルダを指す targetId。「ターゲット」とも呼ばれます。

  • ターゲットの MIME タイプを示す targetMimeTypetargetMimeType は、表示するタイプアイコンを決定するために使用されます。ショートカットが作成されると、ターゲットの MIME タイプが targetMimeType フィールドにコピーされます。

  • targetId フィールドと targetMimeType フィールドは、file リソース内の shortcutDetails フィールドの一部です。

  • ショートカットの親は 1 つだけです。ドライブの他の場所にショートカット ファイルが必要な場合は、ショートカット ファイルを追加の場所にコピーできます。

  • ターゲットが削除されるか、現在のユーザーがターゲットにアクセスできなくなった場合は、ターゲットを指しているユーザーのショートカットが機能しなくなります。

  • ショートカットのタイトルは、ターゲットとは異なる場合があります。ショートカットが作成されると、ターゲットのタイトルがショートカットのタイトルとして使用されます。作成後、ショートカットのタイトルとターゲットのタイトルは個別に変更できます。ターゲットの名前を変更しても、以前に作成したショートカットには古いタイトルが保持されます。

  • ショートカットの MIME タイプは最新ではなくなる可能性があります。まれに、別のタイプのリビジョンがアップロードされると blob ファイルの MIME タイプが変更されますが、更新されたファイルを指すショートカットでは元の MIME タイプが保持されます。たとえば、JPG ファイルをドライブにアップロードしてから AVI リビジョンをアップロードすると、ドライブは変更を認識し、実際のファイルのサムネイルを更新します。ただし、JPG サムネイルは引き続き表示されます。

  • Google アカウント データのエクスポート(Google データ エクスポートとも呼ばれます)では、ショートカットは、ターゲットへのリンクを含む Netscape ブックマーク ファイルとして表示されます。

詳しくは、Google ドライブのショートカットを使用してファイルやフォルダを検索するをご覧ください。

ショートカットを作成

ショートカットを作成するには、MIME タイプを application/vnd.google-apps.shortcut に設定し、ショートカットがリンクするファイルまたはフォルダを targetId に設定して、files.create を呼び出してショートカットを作成します。

次の例は、クライアント ライブラリを使用してショートカットを作成する方法を示しています。

Python

file_metadata = {
    'name': 'FILE_NAME',
    '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_NAME',
     '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': 'FILE_NAME',
  '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_NAME',
      '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);
      }
    }
  }
});

次のように置き換えます。

  • FILE_NAME: ショートカットを必要とするファイル名。
  • SHORTCUT_NAME: このショートカットの名前。

デフォルトでは、ショートカットは現在のユーザーのマイドライブに作成され、現在のユーザーがアクセスできるファイルまたはフォルダに対してのみ作成されます。

ショートカットを検索

ショートカットを検索するには、クエリ文字列 qfiles.list を使用して、返されるショートカットをフィルタします。

mimeType operator values

ここで

  • query_term は、検索するクエリ語句またはフィールドです。共有ドライブのフィルタリングに使用できるクエリ用語を確認するには、検索クエリ用語をご覧ください。
  • operator は、クエリ語句の条件を指定します。各クエリ語句で使用できる演算子を確認するには、クエリ演算子をご覧ください。
  • values は、検索結果のフィルタリングに使用する特定の値です。

たとえば、次のクエリ文字列は検索をフィルタして、スプレッドシート ファイルへのすべてのショートカットを返します。

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