見出し画像

#57 Google ドライブの使用量を確認する(ファイル・フォルダの一覧を作成)

Google ドライブの使用量は、Google ドライブの画面左側のサイドバーに表示されているバーグラフが状況を教えてくれます。

個人向けの Google アカウントでの表示
Google Workspace アカウントでの表示

Windows パソコンを使っているときには、ファイルの検索対象としてファイルサイズを絞り込みに使えたりしますが、

Windows の検索オプション(Windows 11 での表示)

Google の検索では、以下のヘルプ記事を見ている限りでは、ファイルサイズを検索オプションには指定できないようです。 ※これは、しばらく前まで Google ドキュメントなどのファイルがファイルファイズを持っていなかったことも関係しているのかもしれません。

とは言え、自身のアカウントに割り当てられた使用量の制限に迫ってくると、どのファイルが使用量に影響しているのかを確認したくなります。

そんなときは、上図の「保存容量」という部分をクリックすると、Google ドライブに保存されているファイルをファイルサイズ順に表示してくれます。
Google Workspace アカウントであれば、「Google ドライブ」と合わせて、使用量の計算の対象となる「Google フォト」と「Gmail」での使用量も表示してくれます。

Google Workspace アカウントでの表示

今回作成したプログラムは、大量にあるファイル・フォルダの一覧を作成して、Google ドライブ内の整理を手助けするものです。

容量がひっ迫していなくても、単純にフォルダ内のファイル・フォルダの ID の一覧を作成するためにも利用できます。

作成したプログラム

使用する Google アカウントでログインしている状態で、以下の URL にアクセスして、GAS のプログラムを内包したスプレッドシートを、自身の Google ドライブにコピーします。

https://docs.google.com/spreadsheets/d/1nrF6IMNklmYlFnOy-VkLC1c-q0OTEjQGiLcvazDOWt0/copy

スプレッドシートのカスタムメニューから「使用量の確認」→「ルートフォルダから」と選択すると、シート内に Google ドライブ内のファイル・フォルダの一覧を作成します。

プログラムの実行イメージ

コピーしたスプレッドシートでプログラムを実行するときには、初回だけ権限の確認が行われます。その辺りの説明は、以下の記事をご覧ください。

出力される内容

  • 列 A:Type
    ファイル(📄)かフォルダ(📂)かを表示。

  • 列 B:Star
    スター(⭐)が付けられているか否かを表示。

  • 列 C:Path
    当該ファイル・フォルダのパスを表示。 ※Google ドライブ上ではあまり使われない表記ですが、”/” で区切って表記してあります。

  • 列 D:Name
    当該ファイル・フォルダの名前を表示。

  • 列 E:LastUpdated
    当該ファイル・フォルダの最終更新日時を表示。

  • 列 F:Size
    当該ファイルのサイズを表示。 ※存在しているファイルでもサイズを占有していないファイルも存在します。

  • 列 G:フォルダ内のサイズ合計
    当該フォルダ内のファイルサイズの合計。この値は、スプレッドシートのSUMIF 関数によって算出しています。
    1行目に表示されているのは処理対象における合計サイズです。

  • 列 H:Ratio (%)
    当該ファイル・フォルダのパスを表示。

  • 列 I:MimeType
    当該ファイルの Mime Type を表示。どのようなファイルなのかがわかります。

  • 列 J:Editors
    当該ファイル・フォルダを「編集者」として共有している人の人数を表示。

  • 列 K:Viewers
    当該ファイル・フォルダを「閲覧者」として共有している人の人数を表示。

  • 列 L:SharingAccess
    当該ファイル・フォルダの getSharingAccess() で得られた共有状態(Enum Access)を表示。次のような値が表示されます。

    • ANYONE_WITH_LINK
      リンクを知っている人なら誰でもアクセスできます。

    • DOMAIN_WITH_LINK
      リンクを知っているドメイン内のユーザーがアクセスできます。

    • PRIVATE
      明示的に許可されたユーザーのみがアクセスできます。

  • 列 M:Id
    当該ファイル・フォルダの ID を表示。

  • 列 N:Url
    ファイルにアクセスするための URL

追加:2023/02/06

要望が寄せられたので、列 O として作成日時(DateCreated)を出力するようにしました。
本当は「列 E:LastUpdated」の前に挿入すべきなんでしょうが、手っ取り早く、最後に追加しました。気になるようであれば、処理が終わってから移動させてください。

注意点

以前の投稿 #17 でも紹介していますが、GAS のプログラムの実行時間には制限が課せられています。ゴリゴリと長時間処理し続けることはできないのです…

  • 実際に使っている分には Google Workspace アカウントでは、6分以上のスクリプトもスクリプト実行ができるようにも感じられるのですが、公式に案内されている文書で 6分と表記されています。

このようなプログラムを用いて状況を把握しなければならないということは、大量のファイル・フォルダが存在しているはず。しかしながら、大量に存在しているが故に実行時間が長くなってしまい、プログラムの実行が完了しない、というジレンマに陥っています。

大量にファイル・フォルダが保存されていて、この実行時間の制限に抵触してしまう場合には、「使用量の確認」→「このファイルのフォルダから」や「指定した ID のフォルダから」を使用してください。
指定したフォルダ以下の内容を出力するので、適当なフォルダごとに実行してください。

最後に

使用量がひっ迫してきたときには「保存容量」の部分をクリックして表示されるファイルサイズ順の表示で対応できるように思えますが、こんなプログラムがあってもいいかも、と思って作ってみました。
今回のプログラムは、全部で 8つの関数で構成されていますが、実際に処理の中心となっている関数 investigateUsagefolder() は再帰的に実行されており、関数の中で自身を実行しています。再帰プログラムの一例としてご覧ください。

最後に、お決まりのフレーズなどを書いておきます。

  • 一応の動作確認は行っているものの、不慮のトラブルによって損害等が生じても、責任はとれませんので予めご了承ください。

  • コメントを含めても 200行程度のスクリプトであり、実行に際して目的外の場所への書き出しや収集などは行っていないはずです。

  • 特別なエラー処理は行っていないので、意図しないケースでエラーが発生してしまうかもしれません。どうにもならない場合には、ご連絡ください。

わたし自身にしてみると、このような「スクリプトを作ること」が目的になっているような感じですが、このスクリプトが何かの役に立てば幸いです。

補足

この記事から、以下の記事にあるように「アクセスされた件数を把握できないか」と考えて、個人の Google アカウントではなく、認定トレーナーに発行されているデモアカウント(@demoworkspaceedu.com)の Google ドライブからファイルを共有するようにしています。
共有元の変更によって不都合があるようでしたら、コメントなどでお知らせください。

  • この「アクティビティ ダッシュボード」の機能を利用しても、組織外の誰がアクセスしたのかはわかりません。アクセスされた件数が把握できる程度であり、わたし自身が個人情報などを収集する意図はありません。

この記事が気に入ったらサポートをしてみませんか?