スキップしてメイン コンテンツに移動

GASでドライブ検索とURL取得

GASでドライブ検索とURL取得

GAS連携とドライブ検索の概要

Google Apps Script(GAS)を使えば、Google Drive のファイルやフォルダをプログラムから自在に検索できます。ドライブ検索は、検索クエリを組み合わせて目的のリソースを絞り込む強力な手段です。ここでは、GAS での基本的な検索フローと、検索対象を指定する際に頻繁に使われるキーワードを紹介します。

検索の主なパラメータは次の通りです。

  • 名前検索(name contains
  • 種類検索(mimeType =
  • MIMEタイプ(application/vnd.google-apps.folder など)
  • 検索対象の ID(parents in

これらを組み合わせることで、特定のフォルダ内にある PDF ファイルだけを取得する、といった高度な検索が可能です。

searchFilesとsearchFoldersの使い方

GAS には Drive.Files.listDrive.Files.get などの API が用意されていますが、最近は Drive.Files.searchFilesDrive.Files.searchFolders が推奨されています。これらは検索クエリを直接渡せるため、コードがシンプルになります。

searchFiles のサンプル

function findPdfFiles() {
  var query = "mimeType = 'application/pdf' and name contains '報告'";
  var files = Drive.Files.searchFiles(query);
  files.forEach(function(file) {
    Logger.log(file.title + " (" + file.id + ")");
  });
}

searchFolders のサンプル

function listSubFolders() {
  var parentId = "root";
  var query = "mimeType = 'application/vnd.google-apps.folder' and parents in '" + parentId + "'";
  var folders = Drive.Files.searchFolders(query);
  folders.forEach(function(folder) {
    Logger.log(folder.title + " (" + folder.id + ")");
  });
}

上記のコードでは、searchFilessearchFolders を使って、条件に合致するファイルとフォルダを取得しています。取得したオブジェクトには idtitle が含まれ、後続の処理で getDownloadUrl を呼び出す際に利用します。

名前検索・種類検索・MIMEタイプ・URL取得・ID取得の実践

ここでは、実際に 名前検索種類検索 を組み合わせ、さらに MIMEタイプ を指定して検索結果から URL取得ID取得 を行うフローを示します。

検索クエリの構築

検索クエリは文字列で構築します。例として、フォルダ内にある「企画書」という名前を含む Word 文書(application/vnd.openxmlformats-officedocument.wordprocessingml.document)を探す場合:

var folderId = "1a2b3c4d5e6f";
var query = "name contains '企画書' and mimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' and parents in '" + folderId + "'";

検索実行と結果処理

var results = Drive.Files.searchFiles(query);
results.forEach(function(file) {
  var downloadUrl = file.exportLinks && file.exportLinks['application/pdf'] ? file.exportLinks['application/pdf'] : file.alternateLink;
  Logger.log('ファイル名: ' + file.title);
  Logger.log('ID: ' + file.id);
  Logger.log('ダウンロードURL: ' + downloadUrl);
});

上記コードでは、file.exportLinks を利用して PDF 形式でのダウンロード URL を取得しています。file.alternateLink は Google ドキュメントの編集ページへのリンクです。必要に応じて getDownloadUrl を呼び出すことで、直接ダウンロード可能な URL を取得できます。

まとめ

GAS でのドライブ検索は、検索クエリを柔軟に組み合わせることで、名前検索・種類検索・MIMEタイプ指定といった条件を簡単に実装できます。searchFilessearchFolders を活用し、取得したファイルの ID取得URL取得 を行うことで、ワークフローの自動化が実現します。

この記事はAIによって作成されました。

コメント