【问题标题】:Google Drive - How to empty trash from code (programmatically)?Google Drive - 如何从代码中清空垃圾(以编程方式)?
【发布时间】:2012-08-14 20:50:40
【问题描述】:

请帮助我将一个项目与 Google Drive 集成。 问题是 Google Drive 的垃圾文件夹永远不会清空,因此最终由于空间不足,Google Drive 与桌面的同步停止工作。

我需要将垃圾箱配置为不保留已删除的文件(首选选项)或以编程方式从 C# 代码(不太首选)或其他编程语言(最后的选项)中清空它。

如何从代码或脚本或其他内容中清空 Google 云端硬盘垃圾箱?

【问题讨论】:

    标签: c# google-drive-api


    【解决方案1】:

    Google Drive API 没有公开清空垃圾箱的方法,但它有一个 delete 方法来永久删除文件,而不会将它们发送到垃圾箱:

    https://developers.google.com/drive/v2/reference/files/delete

    您还可以通过检查Files resourcetrashed 标签从垃圾箱中检索文件,然后对它们调用delete

    【讨论】:

    • 非常感谢您的澄清,我还发现通过 WebDav 删除文件(感谢 Dav Pocket dav-pocket.appspot.com)不会将文件移动到垃圾箱,但显然执行您的 DELETE 命令,所以这个解决方案使用最少的编码,我会尝试一下。抱歉,我无法将您的答案标记为有用,因为我没有足够的“声誉”积分
    【解决方案2】:

    这是一个较短的版本,我尝试使用上述解决方案,但没有成功。

    function emptydrivetrash() {
      Drive.Files.emptyTrash();
    }
    

    您所要做的就是在资源菜单-> Google 高级服务和谷歌开发者控制台中启用 de drive api...

    【讨论】:

    【解决方案3】:

    这是一个完整的解决方案:

    1) 在驱动器上创建一个空脚本

    2) 粘贴以下代码:

    function doGet() {
      try{
      authorize();    
      var key = "YOUR DEVELOPER 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("<some email>", "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");  
    }
    

    3) 将脚本部署为 Web 应用程序

    4) 点击顶栏上的时钟,创建一个触发 doGet 方法的触发器

    这将为创建触发器的用户清空回收站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2023-03-30
      相关资源
      最近更新 更多