Google ドライブ: ファイル / フォルダ削除

Google ドライブ: ファイル / フォルダ削除 (Google Drive: Delete File / Folder)
Google ドライブ上のファイルやフォルダを削除します。一度に複数の削除が可能です。複数削除する場合、データ項目では1行につき1つずつ ID を書くようにしてください。
2019-07-19 (C) Questetra, Inc. (MIT License)
Configs
  • C1: Google ドライブに接続するユーザ *
  • C2: 削除するファイル・フォルダ ID が保存されている文字型データ項目 *
Script
main();
function main(){
  const fileIds = engine.findDataByNumber(configs.get("FileIdsItem"));
  if (fileIds == null) {
    throw "File IDs aren't set.";
  }
  const linesArray = fileIds.split("\n");
  const numOfLines = linesArray.length;
  if (numOfLines > httpClient.getRequestingLimit()){
  	throw "Number of File IDs is over the limit."
  }
  
  const userId = configs.get("UserID");
  const quser = quserDao.findById(parseInt(userId));
  if (quser == null) {
    throw "User not found:" + userId;
  }
  engine.log("User Name:" + quser.getName() + "\n");
  let token;
  try{
    token = httpClient.getGoogleOAuth2Token(quser, "Drive");
  }catch(e){
    throw "This User has not connected with Google Drive."
  }
  for (let i = 0; i < numOfLines; i++){
    deleteFile(token, linesArray[i])
  }
}
function deleteFile(token, fileId) {
  const url = 'https://www.googleapis.com/drive/v3/files/' + fileId;
  let response = httpClient.begin()
    .bearer(token)
    .queryParam("supportsTeamDrives","true")
    .delete(url);
  const status = response.getStatusCode();
  if (status >= 300) {
    const error = "Failed to delete:" + fileId + "\n" + status + "\n" + response.getResponseAsString();
    throw error;
  }else{
    engine.log("File ID" + fileId + "\n" + "status:" + status + "\n"+"delete successful" + "\n");
  }
}

Download

google-drive-file-delete.xml

Capture

Notes

  1. C1 のユーザは、[アカウント設定]>[Google 連携]にて、Google ドライブと連携済みである必要があります

See also

%d人のブロガーが「いいね」をつけました。