gpt4 book ai didi

google-apps-script - 从Google云端硬盘文件夹中删除旧文件

转载 作者:行者123 更新时间:2023-12-01 10:18:38 24 4
gpt4 key购买 nike

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

我启用了Google的高级服务,即DRIVE API V2。

我激活了一个触发器,每隔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);

最佳答案

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

有关

  • Is it possible to get the owner for a Google Drive file?
  • How to get the owner of file using Google Drive API
  • How to programmticly remove a file from "share wtih me" in Google drive
  • How to retrieve the owner or Drive ID of a document with Google APIs?
  • 关于google-apps-script - 从Google云端硬盘文件夹中删除旧文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58228969/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com