Мне нужен скрипт для отслеживания определенной папки Google Диска при каждом изменении и уведомления меня по электронной почте.

Я пытался весь день и нашел это: http://www.jellybend.com/2012/12/19/monitor-google-drive-folders-with-google-apps-script/

Прикрепленный скрипт работал у меня лишь частично. Он не реагирует на изменения во вложенных папках, даже если в них есть файлы (например, переименовать/удалить вложенную папку). Также появляются ошибки, если я удаляю и снова добавляю один и тот же файл в папку, он просто не отправляет мне электронное письмо для вновь добавленного «старого файла».

Я также нашел это: https://developers.google.com/drive/v2/reference/changes/list#examples

но, к сожалению, я не совсем уверен, что это за параметры, и я просто неопытен в написании чего-то подобного.

Любая помощь будет оценена! Спасибо!


person saldtch    schedule 22.03.2014    source источник


Ответы (3)


Код мониторинга файлов по этой ссылке представляет собой скрипт приложений, привязанный к листу. Скрипт приложений можно привязать к листу, документу, форме или сайту. Сценарий приложений также может быть stand alone приложением. Таким образом, любой код, который вы хотите написать, не обязательно должен быть в электронной таблице.

Сценарий приложений можно настроить так, чтобы он имел триггер события Time-driven.

Сценарий приложений, запускающих события

Существует также Script Service для создания триггеров часов.

Класс ClockTriggerBuilder

Используя триггер события, управляемый временем, или триггер часов, вы можете использовать метод getSize() для возврата объема дискового пространства, используемого элементом:

Класс — Папка — Метод getSize

// This example logs the first file's size in bytes
 // Note: This can also be used on a folder to get the size of its contents
 var file = DocsList.getAllFiles[0];
 Logger.log(file.getSize());

Конечно, вам нужно знать первоначальный размер папки или файла, поэтому вам нужно будет где-то сохранить текущий размер. Вы можете создать файл для хранения этой информации или использовать встроенную базу данных, которая есть в Apps Script.

Для хранения вашей исторической информации о папке или файле вы можете использовать ScriptDB.

ScriptDB

Цитировать:

ScriptDB — это объектная база данных JavaScript для Google Apps Script. Каждый проект сценария получает базу данных, которую сценарий может использовать для сохранения, обновления и поиска данных объекта JavaScript.

Вы также можете записывать историческую информацию о файлах и папках в электронную таблицу или документ.

В зависимости от того, кому принадлежит файл и кто имеет доступ к файлу, необходимо предоставить разрешения или использовать oAuth2 для аутентификации того, кто имеет доступ к информации о файле и папке.

Если вы не можете написать весь код самостоятельно, вы можете создать общий файл Apps Script или найти другой способ привлечь людей к совместной работе над проектом.

person Alan Wells    schedule 18.04.2014

Я изучал это самостоятельно в течение некоторого времени и придумал сценарий, привязанный к электронной таблице. Надеюсь, это может помочь кому-то, так как кажется, что многие люди ищут что-то подобное. Мой скрипт отслеживает папку и отправляет уведомление всем текущим зрителям папки, как только добавляется новый файл. Триггер для запуска скрипта может быть установлен в зависимости от потребностей пользователя. В моем случае почасовая работа работала нормально.

Электронная таблица со сценарием: https://docs.google.com/spreadsheets/d/1CzVADjUTT2d9Y5OGDOnv37mCaO49kPt4RmnyZgzjTKA/edit#gid=0

Если вы хотите попробовать этот сценарий, просто убедитесь, что вы вошли в свою учетную запись Google, когда открываете ссылку, и вы сможете сделать копию электронной таблицы.

person VforVasil    schedule 14.08.2015

Этот скрипт Google будет отправлять уведомление по электронной почте вам или другим адресам электронной почты, когда файл в папке Google Диска был добавлен, переименован, изменен или модифицирован. http://baumbach.com/google-script-2/

person user3000439    schedule 01.08.2016