【最終版?】GoogleDriveに保存したファイルの自動削除プログラム

GoogleDriveのファイルの自動削除 マイコン

自作のWebカメラを使って定時にGoogleDriveに画像を保存しています。

過去に、自動削除プログラムを公開していましたが、稀に起こるタイムアウト問題。 今回の対処方法は最終版と言っていいほど安定しています。
ESP32-CAMでタイムラプス

PR

GoogleDriveに保存したファイルの自動削除プログラム

前回はタイムアウトを監視してトリガーの再設定を行うバージョンでした。
対処法を悩んだ結果、削除するファイル数を減らして、処理時間を短くしてみました。
1回の処理で100ファイルを削除する方法です。 指定したファイル数を削除したら終了なので、短時間の処理になります。

何で気が付かないかな~

function trashFile() {
var folderName = "ABC"; // 時限削除したいフォルダの名前
var days = 30; // バッファを見て30日
var batchSize = 100; // 削除するファイル数

var folders = DriveApp.getFoldersByName(folderName);
while (folders.hasNext()) {
var folder = folders.next();
var files = folder.getFiles();
var batchCounter = 0;

while (files.hasNext() && batchCounter < batchSize) {
var file = files.next();
if (new Date() - file.getLastUpdated() > days * 24 * 60 * 60 * 1000) {
file.setTrashed(true);
batchCounter++;
}
}

// 指定した数のファイルを削除したら終了
if (batchCounter >= batchSize) {
return;
}
}
}

WEBカメラでは2分おきに撮影してGoogleDriveにファイルを転送しています。
よって、1日にアップロードされるファイル数は

1440分×1/2分枚=720枚

2時間おきに100ファイル削除するので、1200枚/日の削除になります。
スクリプトの実行エラーが発生しても次のトリガーでリカバリーできます。

とりあえず、2時間おきに100ファイルずつ削除しています。処理時間も100秒から200秒程度でした。 ファイル数が多くなったらトリガーを1時間おきに設定するか1回の処理数を増やしたいと良いと思います。

created by Rinker
Moechando
¥1,490 (2024/07/18 12:12:55時点 Amazon調べ-詳細)

コメント

タイトルとURLをコピーしました