自動清空/刪除 Google Drive 的垃圾桶

在Google Drive中,如果你對檔案按下刪除,當下檔案只會搬移到垃圾桶,並不會真的刪除。

在垃圾桶內的檔案,若沒有清空,那麼垃圾桶內的檔案將會一直存在,仍然會持續的佔用空間

這就是為什麼很多人說,我明明把Google Drive內的檔案刪了,但是為什麼可用的空間仍然沒有變多。

如果你想定時把Google Drive垃圾桶自動清空的話,就照此篇文章執行吧。

1.先申請API Key

到https://console.developers.google.com/,登入後先建立一個新的專案。

接下來進入剛剛建立的專案,在「API和驗證」->「憑證」->「公開API存取」中,點選「建立新的金鑰」

此時,請把產生的「API 金鑰」記下來。

2.建立Script

到https://script.google.com,登入後先建立一個空白專案。

把以下程式碼貼上

function doGet() {
    try {
        authorize();
        var key = "Your API Key,放你剛剛記下來的API Key";
        var params = {
            method: "DELETE",
            oAuthServiceName: "drive",
            oAuthUseToken: "always"
        };
        UrlFetchApp.fetch("https://www.googleapis.com/drive/v2/files/trash?key=" + key, params);
    }
    catch (error) {
        MailApp.sendEmail("yourEmailAddress@gmail.com", "EMPTY TRASH BIN ERROR", "EMPTY TRASH BIN ERROR:<br>" + error);
        return;
    }
}

function authorize() {
    var oauthConfig = UrlFetchApp.addOAuthService("drive");
    var scope = "https://www.googleapis.com/auth/drive";
    oauthConfig.setConsumerKey("anonymous");
    oauthConfig.setConsumerSecret("anonymous");
    oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=" + scope);
    oauthConfig.setAuthorizationUrl("https://accounts.google.com/OAuthAuthorizeToken");
    oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
}

接下來請儲存程式(編輯介面中的檔案 -> 存儲)。

儲存完後,請把執行函式選到doGet,並執行(或是點選 -> 執行 -> doGet)。

第一次執行,會請你進行google帳號的授權,請同意授權,並執行(此時你垃圾桶內的資料將會清空,請注意)。

 

3.最後把該程式建立排程就可以了

在「資源」 -> 「有專案的啟動程序」 -> 點一下「尚未建立觸發程序,按一下這裡來新增觸發程序」

執行「doGet」,時間就看自己要多久自動清一次垃圾桶,我自己是設定每星期執行一次。

到這邊就完成了。恭喜你,你的垃圾桶會自動清空了!!!

4 thoughts on “自動清空/刪除 Google Drive 的垃圾桶

  1. OAuthConfig API 已逾時。

    File: 程式碼 Line: 21
    這個 API 已標示為淘汰,對應的功能日後可能會被移除,建議您不要使用,請盡量改用替代解決方法。

    方法 UrlFetchApp.addOAuthService 已經淘汰。

    File: 程式碼 Line: 19
    這個方法已標示為淘汰,表示相關功能日後可能會被移除。請避免使用,並考慮改用其他解決方法。

  2. EMPTY TRASH BIN ERROR:Exception: 對 的要求失敗,系統回傳代碼 403。伺服
    器回應被截斷:{
    “error”: {
    “errors”: [
    {
    “domain”: “usageLimits”,
    “reason”: “accessNotConfigured”,
    “message”: “Access Not Configured. The API (… (請使用
    muteHttpExceptions 選項查看完整回應)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *