每次都把免費雲端空間的容量用到快爆炸嗎,何不用 GAS 來實作一個 「雲端硬碟清理小幫手」
我們可以利用 Google Apps Script 自動刪除過期、不再使用的檔案
並生成一個 google sheet 報告顯示哪些檔案已經刪除或即將清理,方便讓我們做檔案的管理!
那我們看看如何實作吧!
我們需要設定條件來篩選出要清理的檔案。Ex: 您可以選擇刪除 6 個月內沒有被修改過的檔案。
function getOldFiles() {
// 設定6個月前的日期
var sixMonthsAgo = new Date();
sixMonthsAgo.setMonth(sixMonthsAgo.getMonth() - 3);
// 轉換日期格式為 YYYY-MM-DD,DriveApp 支援的查詢格式
var formattedDate = Utilities.formatDate(sixMonthsAgo, Session.getScriptTimeZone(), 'yyyy-MM-dd');
// 搜尋超過6個月未被修改的檔案
var query = 'modifiedDate > "' + formattedDate + '" and trashed = false';
var files = DriveApp.searchFiles(query);
return files;
}
searchFiles(query)
是搜尋使用者雲端硬碟符合所有搜尋條件的檔案集合在清理檔案之前,我們可以先生成報告,列出將要刪除的檔案,方便我們查看哪些檔案重不重要。
function generateCleanupReport() {
var files = getOldFiles();
var report = [];
// 建立報告標題
report.push(['File Name', 'Last Modified Date', 'File Size (MB)']);
while (files.hasNext()) {
var file = files.next();
report.push([file.getName(), file.getLastUpdated(), (file.getSize() / (1024 * 1024)).toFixed(2)]);
}
// 將報告匯出到 Google Sheets
var sheet = SpreadsheetApp.create('Drive Cleanup Report');
sheet.getActiveSheet().getRange(1, 1, report.length, report[0].length).setValues(report);
Logger.log('報告已生成. 請查看 Google Sheet url: '+sheet.getUrl());
}
function cleanupOldFiles() {
var files = getOldFiles();
var deletedFiles = [];
while (files.hasNext()) {
var file = files.next();
file.setTrashed(true); // 將檔案移到垃圾桶
deletedFiles.push(file.getName());
Logger.log('Deleted file: ' + file.getName());
}
if (deletedFiles.length > 0) {
Logger.log('Cleanup completed. Deleted ' + deletedFiles.length + ' files.');
} else {
Logger.log('No old files found for cleanup.');
}
}
為了讓這個清理工具定期運行,您可以設置一個 time trigger 時間觸發器,例如每月運行一次。
cleanupOldFiles()
函數設置一個 time trigger在清理完檔案後,您還可以自動發送通知給管理者或團隊成員,告知哪些檔案已被清理。
function notifyCleanup() {
var emailAddress = 'admin@example.com'; // 通知的電子郵件
var subject = 'Google Drive Cleanup Report';
var message = 'The Google Drive cleanup was completed successfully. Please check the attached report for details.';
// 寄送郵件
MailApp.sendEmail(emailAddress, subject, message);
Logger.log('Notification sent to ' + emailAddress);
}
Google App Script 一支程式的運行時間最多只有 6 分鐘,如果你雲端硬碟裡的檔案太多,可以要再另外想一個邏輯想辦法把已偵查過的檔案記錄起來,再往下一批檔案去搜尋~才不會永遠都只能找開頭這六分種的檔案們唷!
恭喜你又學會了如何用 GAS 做一個自動化雲端硬碟清理小工具,幫助我們清理雲端硬碟
再也不用一個一個資料夾點進去遍歷所有檔案囉!