Google Drive の古いファイルを自動削除【Google Apps Script】

当ページのリンクには広告が含まれています。
macbook, laptop, google

こんにちは、ふじみやです。

前回、Rclone を利用して Linux と Google Drive を連携し、Linux に保存しているファイルを転送する方法についてご紹介をしました。

Rclone と cron を組み合わせることで、定期的にバックアップデータを Google Drive に自動でアップロードすることも可能になりますが、どんどんデータが溜まり Google Drive の容量を圧迫してしまうという問題が発生します。

今回は、そういった問題に対処するため、Google Apps Script(GASとも言うみたいです)を使って Google Drive 内の古くなったファイルを自動的にごみ箱に移す方法についてご紹介します。

目次

Google Apps Script とは

Google Apps Script とは Google が開発・提供しているプログラミング言語のことで、Web ブラウザ上で動作する Java Script をベースとしたものです。

これを使うことでタスクの自動化ができたりしちゃいます。

私自身、まだまだ使いこなしているとは言いがたいので、より詳細に知りたいという方は「Google Apps Script」などで検索をしてみてください。

スクリプトの作成と自動化

それでは、実際にやっていきましょう。

今回は、ルートフォルダの直下にあるsampleというフォルダの中に保存されている、作成後 14 日以上経過したファイルのみをゴミ箱に移すようにしたいと思います。

Google Apps Script ファイルの作成

Web ブラウザより Google Drive にアクセスし、新規に Google Apps Script ファイルを作成します。ここではルートフォルダに作成することにします。

これは、左上の「+ 新規」ボタンから「その他 > Google Apps Script」と選択すれば大丈夫です。フォルダ内で右クリックして作成をすることもできます。もし Google Apps Script がなければ「アプリを追加」から探してみてください。

Google Apps Script へのコード記入

Google Apps Script を作成すると自動的にエディタが開きますので、コード入力部分に次を貼り付けましょう。

function deleteOldFiles() {
  var folder = DriveApp.getFolderById("xxxxxxxxxxxxxxxxxx"); // 対象のフォルダIDを指定
  var files = folder.getFiles();
  var now = new Date().getTime(); // 現在時刻を取得
  
  while (files.hasNext()) {
    var file = files.next();
    var createdTime = file.getDateCreated().getTime();
    var elapsedTime = now - createdTime;
    
    // 14日経過したファイルを削除する
    if (elapsedTime > 14 * 24 * 60 * 60 * 1000) {
      file.setTrashed(true);
    }
  }
}

このコードではフォルダの中にあるファイルのみが削除され、子フォルダや子フォルダの中身は削除されません。

もし作成後の経過日数を変更したい場合にはif (elapsedTime ・・・のあとにある「14」を任意の数に変更してください。

フォルダ ID の取得方法

削除対象とするフォルダの ID を取得するためには、削除対象のフォルダを開き URL を確認しましょう。

後ろの英数字の羅列部分がフォルダ ID となっています。

ファイルの保存と実行

ファイル名をクリックすることで、ファイル名の変更ができますので、お好きなお名前に変更しておきましょう。ここではAuto-Deletionとしました。

名前の変更後は保存ボタンをクリックまたはCTRL + Sで保存をしておきましょう。

実行ボタンをクリックすると「承認が必要です」と表示が出てきますので「権限を確認」> アカウントの選択 > 左下の「詳細」をクリック > Auto-Deletion(安全ではないページ)に移動してください。

その後、Google Apps Script に Google Drive のすべてのファイルの表示、編集、作成、削除をすることについて権限を付与することを許可するか聞かれますので「許可」をクリックしましょう。もし英語で表記されているならば「Allow」をクリックです。

権限の設定後、コードの下部に実行結果が出力されますので、以下のようにエラーなく「実行完了」と表示されれば OK です。

ちゃんとファイルが削除されているかを試すため、適当なファイルをsampleフォルダ内に保存し、作成後 1 分経過したファイルを削除といったかたちにコードを書き換えて確認してみても良いかと思います。

トリガーの設定

左側にある時計マークをクリックしてトリガー(スクリプトの自動実行頻度)を設定していきましょう。

「+ トリガーを追加」または「新しいトリガーを作成します」をクリックし設定をしていきます。今回は、1日1回実行すれば良いので「時間ベースのトリガーのタイプを選択」は「日付ベースのタイマー」にしておきましょう。

スクリプトを実行する時間はお好きな時間を選択したら、右下にある「保存」をクリックしましょう。

これで Google Apps Script の設定は完了です。

まとめ

作成した Google Apps Script はルートフォルダにそのまま置いておいてもいいですし「Script」といったフォルダを作成してその中にまとめて保存しておいても問題ありません。

いずれにせよ、マイドライブの中に保存したファイルが古いものであふれてしまうということは避けられますね。

また、もしゴミ箱に移したデータが必要になった場合でも、移してから 30 日以内であれば復元をすることができますので、ご安心ください。とはいえ、ゴミ箱の中にあるファイルは引き続き保存容量を圧迫していますので、ゴミ箱の中にある期間も含めて適切なライフサイクルルールを設定しましょう。

それではまた。

macbook, laptop, google

この記事が気に入ったら
フォローしてね!

コメント

コメントする

目次