Используя предыдущие статьи и вопросы, найденные в переполнении стека, я смог найти фрагмент скрипта приложения, который ищет ярлыки Gmail для вложений и перемещает их в определенную папку на Google Диске.
function saveAttachmentInFolder(){
var folder = DriveApp.getFolderById('xxosi2');
var userId = "[email protected]";
var query = "label:thankyoucards-reports";
var res = Gmail.Users.Messages.list(userId, {q: query});//I assumed that this works
res.messages.forEach(function(m){
var attA=GmailApp.getMessageById(m.id).getAttachments();
attA.forEach(function(a){
folder.createFile(a.copyBlob()).setName(a.getName());
});
});
}
Мне нужно изменить этот код для выполнения следующих дополнительных функций:
Я также поиграл с ответом, найденным в следующем потоке, но безрезультатно, поскольку я считаю, что это каким-то образом жестко закодировано и слишком специфично для одного типа файла (xlsx) Копирование вложений из Gmail в папку Google Диска и перезапись старых файлы с помощью скрипта приложений.
Я каждый день вручную обновляю те же файлы, которые обновляются из вторичной системы! Таким образом, возможность систематически обновлять файлы каждый день сэкономит мне немало времени.
Спасибо за ответ. Из вашего ответа я предложил ответ. Не могли бы вы подтвердить это? Если я неправильно понял вашу цель и это было бесполезно, приношу свои извинения.
Спасибо за ответ и тестирование. Я рад, что ваша проблема была решена. И тебе спасибо.
Я считаю, что ваша цель заключается в следующем.
В таком случае, как насчет следующей модификации? В этом случае используется Drive API. Итак, включите Drive API в расширенных сервисах Google.
folder.createFile(a.copyBlob()).setName(a.getName());
var filename = a.getName();
var files = folder.getFilesByName(filename);
if (files.hasNext()) {
Drive.Files.update({}, files.next().getId(), a.copyBlob(), {supportsAllDrives: true});
} else {
folder.createFile(a.copyBlob()).setName(filename);
}
Я должен извиниться за мое плохое знание английского языка. К сожалению, я не могу понять
If file exists, overwrite and retain version history
. Могу я спросить вас о деталях вашей цели?