ブロックリファレンス

BLOCKS Reference

Google Drive

Googleドライブのアイテムを検索

概要

このブロックは、Googleドライブ上のアイテム(ファイルやフォルダー)の一覧を取得します。

例えば、アイテム名プロパティに「レポート」を指定すると、ファイル名やフォルダー名に「レポート」を含むファイルやフォルダーの一覧を変数に取得します。

ファイルやフォルダーの一覧は、ログへも出力されます。以下は出力の例です。

info : Number of results: 2
info :   example01 (Google Sheets)  https://drive.google.com/open?id=1_qpai0jh0AFauD5CGFvfx-flTQXf1l1zqpj0Q1ITVXYopen_in_new
info :   Getting started (PDF)  https://drive.google.com/open?id=0B1uw5xAKpuEac3RhcnRlcl9maWxlopen_in_new
  • 一覧の対象となるアイテムは、指定のGCPサービスアカウントでアクセス可能なもののみです。
    • 特定フォルダー内のアイテムのみを出力の対象にできます。
    • アイテム名の一部に一致したものだけを出力の対象にできます。
  • Number of resultsは、アイテムの個数です。
  • 各アイテムは、「アイテム名(アイテムの種類)アイテムURL」という形式で出力されます。
    • アイテムURLは、マウスクリックでそのアイテムを開けます(クリックしたユーザーに対し適切なアクセス権が必要)。

info既存のGoogleドライブ上のアイテム(Google Driveカテゴリーのブロック以外で作成・保存したアイテム)も対象とする場合は、GCPサービスアカウントのメールアドレスでそのアイテムを共有しておく必要があります。GCPサービスアカウントのメールアドレスは、フローデザイナーの設定のGCPサービスアカウントで確認できます。

warningセルフサービスプランの場合は、このブロックを使用する前に、Google Drive APIを有効にしてください。詳しくは、「基本操作ガイド>ヒント> Google APIを有効にする」を参照してください。

プロパティ

プロパティ名 説明
ブロック名

編集パネルに配置した当該ブロックの表示名が変更できます。

ブロックリストパネル中のブロック名は変更されません。

GCPサービスアカウント このブロックで使用するGCPサービスアカウントを選択します。
親フォルダー名 特定のフォルダー内にあるアイテムの一覧を出力したいときに、そのフォルダーを指定します。
アイテム名

指定した文字列を含むアイテム名のみの一覧を出力したいときに指定します。

指定した文字列を含むか含まないかは、前方一致で判断されます。GettingStartedというアイテム名の場合、Gettingは一致しますが、Startedは一致しません。

ブロックメモ このブロックに関するメモが記載できます。このブロックの処理に影響しません。
結果を格納する変数

アイテムの検索結果を格納する変数を指定します。

アイテムの検索結果は、アイテム情報(ファイルURLおよびファイル名)の配列です。

アイテム情報に、ファイルURL以外にファイル名を含めるかどうかは、[変数に含める情報]プロパティで設定します(ファイル名のみを格納することはできません)。

以下は、アイテム情報がファイルURLのみの場合の格納例です。URLの配列として変数に格納されます。

[
  "https://drive.google.com/open?id=1dbVqvIEsqWKCngiNPpBy4CIb0bQmER9wxI5Y2cJA-_I",
  "https://drive.google.com/open?id=1cK4SqTXENAaQKFdtJB0ie_wyztnzDQVYORO3Ecc77n4",
  "https://drive.google.com/open?id=1UrFVbmWMENZC5x5pZnfenck9DVVSVC4Rj3aH_X1x-YM",
  "https://drive.google.com/open?id=1Jeb2ln79T6JdWrzYYqIuyeBNcnzbXrYB",
  "https://drive.google.com/open?id=1Me5zeEWLHeaUcMc1xNCzl2HTf-kpP1Wm",
  "https://drive.google.com/open?id=0B1uw5xAKpuEac3RhcnRlcl9maWxl"
]

以下は、ファイルURLとファイル名の格納例です。この場合は、オブジェクトの配列として変数に格納されます。

[
  {
    "name": "国民の祝日",
    "url": "https://drive.google.com/open?id=1dbVqvIEsqWKCngiNPpBy4CIb0bQmER9wxI5Y2cJA-_I"
  },
  {
    "name": "シフト表",
    "url": "https://drive.google.com/open?id=1cK4SqTXENAaQKFdtJB0ie_wyztnzDQVYORO3Ecc77n4"
  },
  {
    "name": "割当て最適化チュートリアル",
    "url": "https://drive.google.com/open?id=1UrFVbmWMENZC5x5pZnfenck9DVVSVC4Rj3aH_X1x-YM"
  },
  {
    "name": "houston-ray-F2NWpo64PHo-unsplash.jpg",
    "url": "https://drive.google.com/open?id=1Jeb2ln79T6JdWrzYYqIuyeBNcnzbXrYB"
  },
  {
    "name": "bezdekIris.csv",
    "url": "https://drive.google.com/open?id=1Me5zeEWLHeaUcMc1xNCzl2HTf-kpP1Wm"
  },
  {
    "name": "Getting started",
    "url": "https://drive.google.com/open?id=0B1uw5xAKpuEac3RhcnRlcl9maWxl"
  }
]
変数に含める情報

結果を格納する変数に、ファイルURL以外にファイル名を含めるかどうかを指定します(ファイル名のみを格納することはできません)。

このプロパティは、[結果を格納する変数]プロパティに変数が指定されたときのみ有効です。

ファイル名を含めたい場合は、ファイル名のチェックボックスにチェックを付けます。

並び順

検索結果の並び順を以下から選択します。この並び順は、ログ出力と結果を格納する変数に影響します。

最終更新 アイテムが最終更新(日時)の昇順に並びます。
最終更新(GCPサービスアカウント) アイテムが最終更新(日時)の昇順に並びます(選択したGCPサービスアカウント自身が行った日時)。
作成日時 アイテムが作成日時の昇順に並びます。
作成日時(降順) アイテムが作成日時の降順に並びます。

使用例

ここでは、「Googleドライブのアイテムを削除」ブロックと組み合わせて、検索結果を元にアイテムを削除する例を紹介します。

この例で作成するフローのおおまかな流れは、以下のとおりです。

  1. Googleドライブのアイテムを検索」ブロックを使って、削除対象のアイテムをリストアップ
  2. リストアップした削除対象のアイテムを「Googleドライブのアイテムを削除」ブロックで削除

以下、上記順序に沿って、解説します。

まず、「Googleドライブのアイテムを検索」ブロックを使って、削除対象のアイテムをリストアップします。

リストアップした内容は、「結果を格納する変数」プロパティを使って変数に格納します。ここでは、変数「delete_item_list」に格納しています。

warningリストアップした内容がファイルURLのみとなるように、「変数に含める情報」プロパティは、「ファイルURL」のみチェックをオンにしてください。

続いて、リストアップした削除対象のアイテムを「Googleドライブのアイテムを削除」ブロックを使って削除します。

アイテムURL(名前可)」プロパティに、削除対象アイテムのリストアップ内容が格納された変数を変数展開で指定します。ここでは、「${delete_item_list}」と指定しています。

最後に、フローをつなげて完成です。

なお、「Googleドライブのアイテムを検索」ブロックでは、前方一致による検索のため、希望に沿った検索結果とならない可能性があります。

このような場合は、「Googleドライブのアイテムを検索」ブロックによる検索結果を一旦BigQueryテーブルに格納し、SQLクエリーを使ってさらに絞り込むことで、希望に沿った絞り込みが実現できます。

この例で作成するフローのおおまかな流れは、以下のとおりです。

  1. Googleドライブのアイテムを検索」ブロックを使って、削除対象のアイテムをリストアップ
  2. リストアップ結果を「変数からテーブルへロード」ブロックを使って、一旦BigQueryテーブルに格納
  3. クエリーの実行」ブロックを使って、削除対象のアイテムを再リストアップ
  4. リストアップした削除対象のアイテムを「Googleドライブのアイテムを削除」ブロックで削除

以下、上記順序に沿って、解説します。

まず、「Googleドライブのアイテムを検索」ブロックを使って、削除対象のアイテムをリストアップします。

リストアップした内容は、「結果を格納する変数」プロパティを使って変数に格納します。ここでは、変数「delete_item_list」に格納しています。

warning後でSQLクエリーを使って削除対象のアイテムを絞り込むため、先ほどとは違ってここではリストアップした内容にファイル名を含めます。「変数に含める情報」プロパティは、「ファイルURL」と「ファイル名」両方のチェックをオンにしてください。

続いて、リストアップ結果を「変数からテーブルへロード」ブロックを使って、一旦BigQueryテーブルに格納します。

続いて、「クエリーの実行」ブロックを使って、削除対象のアイテムを再リストアップします。

この例では、以下のクエリーを指定して、「サンプル」という文字列を含むファイル名をリストアップしています(LIKE句を使った部分一致)。

SELECT
  ARRAY(
    SELECT
      url
    FROM
      example.delete_item_list
    WHERE
      name LIKE '%サンプル%') AS url

info実際の利用にあたっては、ARRAY関数内のデータセット・テーブル・WHERE句などをご自身の目的や環境に合わせて読み替えてください。

このリストアップ結果は、オブジェクト配列形式で変数に格納されます。

続いて、リストアップした削除対象のアイテムを「Googleドライブのアイテムを削除」ブロックで削除します。

アイテムURL(名前可)」プロパティに、削除対象アイテムのリストアップ内容が格納された変数を変数展開で指定します。ここでは、「${delete_item_list.0.url}」と指定しています。

最後に、フローをつなげて完成です。

この情報は役に立ちましたか?