Google云端硬盘 – 如何从代码中清空垃圾(以编程方式)?
请帮我将项目与Google云端硬盘集成。 问题是Google云端硬盘文件夹永远不会被清空,因此由于空间不足,Google Drive与桌面同步最终会停止运行。
我需要配置垃圾桶不保留已删除的文件(首选选项)或以编程方式从C#代码(不太喜欢)或其他编程语言(最后选项)清空它。
如何从代码或脚本或其他内容中清空Google云端硬盘垃圾箱?
Google云端硬盘API不公开清空垃圾箱的方法,但它有一种delete
方法可永久删除文件,而不会将其发送到垃圾箱:
https://developers.google.com/drive/v2/reference/files/delete
您还可以通过检查Files资源的已 delete
标签来检索trashed
中的文件 ,然后对它们调用delete
。
这是一个较短的版本,我尝试使用上述解决方案,但没有运气。
function emptydrivetrash() { Drive.Files.emptyTrash(); }
您所要做的就是在资源菜单 – > Google高级服务和谷歌开发者控制台中启用de drive api …
这是一个完整的解决方案:
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("", "EMPTY TRASH BIN ERROR:
"+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方法的触发器
这将清空正在创建触发器的用户的垃圾箱。