4

プロジェクトを Google ドライブと統合するのを手伝ってください。問題は、Google ドライブのごみ箱フォルダが空にならないことです。そのため、最終的に、スペース不足のためにデスクトップとの Google ドライブの同期が機能しなくなります。

削除されたファイルを保持しないようにゴミ箱を構成するか (推奨オプション)、C# コードからプログラムで空にするか (あまり推奨されません)、または他のプログラミング言語 (最後の手段のオプション) のいずれかを行う必要があります。

コードやスクリプトなどから Google ドライブのゴミ箱を空にするにはどうすればよいですか?

4

3 に答える 3

6

Google Drive API はゴミ箱を空にするメソッドを公開していませんが、deleteファイルをゴミ箱に送らずに完全に削除するメソッドを持っています:

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

Files リソースtrashedのラベルを確認してからファイルを呼び出すことで、ごみ箱からファイルを取得することもできます。delete

于 2012-08-14T21:04:43.857 に答える
0

完全な解決策は次のとおりです。

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 メソッドを呼び出すトリガーを作成します。

これにより、トリガーを作成しているユーザーのゴミ箱が空になります。

于 2014-07-08T11:35:38.970 に答える