从Google云端硬盘文件夹中删除旧文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Google云端硬盘文件夹中删除旧文件相关的知识,希望对你有一定的参考价值。

我创建了此脚本以删除3个多小时前发布的文件。即使最新文件早于3个小时,也不会被删除,因此该文件夹永远不会为空。

我启用了称为DRIVE API V2的Google的高级服务。

我激活了一个触发器,每隔5分钟分析一次文件夹,但是通常文件不会被删除,而是保留在文件夹中。该脚本有时有效,有时则无效。

我想知道什么是错的,或者需要进行哪些编辑才能使其正常运行。

function getOldFileIDs() {
  // Old date is 3 Hours
  var oldDate = new Date().getTime() - 3600*1000*3;
  var cutOffDate = new Date(oldDate).toISOString();

  // Get folderID using the URL on google drive
  var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
  var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '"');

  var obj = [];
  while (files.hasNext()) {
    var file = files.next();
    obj.push({id: file.getId(), date: file.getDateCreated()});
  }
  obj.sort(function(x, y) {return x.date < y.date ? 1 : -1});
  obj.shift();
  var fileIDs = obj.map(function(e) {return e.id});
  return fileIDs;
};

function deleteFiles() {
  var fileIDs = getOldFileIDs();
  fileIDs.forEach(function(fileID) {
    Drive.Files.remove(fileID);
  });
};

我还需要一些帮助,以便此脚本可以分析文件夹中是否存在具有相同名称的文件,如果存在,它将删除多余的文件,以便每个名称始终只有一个文件。] >

还有新的细节,出现了一个新错误,直到更早之前都没有发生……说:

drive.files.delete的API调用失败,错误为该文件的权限不足(第24行)

第24行:

    Drive.Files.remove(fileID);

我创建了此脚本以删除3个多小时前发布的文件。即使最新文件的时间早于3个小时,也不会删除该文件,因此该文件夹永远不会为空。我启用了Google的...

答案

通过使用消费者(免费)帐户,只有文件所有者才能删除它们。为防止错误,在调用Drive.Files.remove(fileID)之前,您的代码应检查您是否是文件所有者。

另一答案

尝试一下:

以上是关于从Google云端硬盘文件夹中删除旧文件的主要内容,如果未能解决你的问题,请参考以下文章

C# 从 Google 共享驱动器 API v.3 中删除文件

Google云端硬盘,在特定文件夹中自动删除超过7天的文件

如何从webapp重定向到Google云端硬盘应用

使用Android应用无法在Google云端硬盘上看到PC上传的文件

Google 云端硬盘 zip 损坏

自动从 Google 共享驱动器中删除超过 X 天的文件?