驱动Google - 在文件无法同步时发送电子邮件

时间:2017-09-10 07:29:34

标签: php email google-apps-script google-drive-api

我已在NAS驱动器上启用了同步选项。每小时NAS驱动器的内容与我的谷歌驱动器同步。当某个特定日期的文件没有出现时,谷歌硬盘是否可以发送电子邮件?

我对将要检查的脚本感兴趣 - 如果24小时内没有文件显示 - 它会发送一封电子邮件。

Google云端硬盘每天上传24个文件。如果这些文件较少,我需要一个发送电子邮件的脚本。

如果在2小时内没有上传文件 - 发送电子邮件。

最好的选择是最新版本,因为我可以跟踪谷歌硬盘的状态。谷歌驱动器上的文件位于"备份数据库"文件夹中。

1 个答案:

答案 0 :(得分:0)

如果我理解你的要求是:

  1. 查询Google云端硬盘中文件夹的文件
  2. 检查所有文件的创建日期
  3. 如果最近上传的文件超过X小时前上传,请发送电子邮件
  4. 我认为你可以用Google App script完成所有事情。您需要在云端硬盘帐户中创建一个新的脚本文件,并在其中添加此功能。

    function isBackuped() {
      var delay_h = 0; // or 2 or 24
      var delay_m = 70;
      var current = new Date();
      current.setTime(current.getTime() - (delay_h * 60 * 60  + delay_m * 60) * 1000 );
    
      var recent = false;
    
      var folders = DriveApp.getFoldersByName("backup database");
      while (folders.hasNext()) {
        var backup_folder = folders.next();
    
        var files = backup_folder.getFiles()
        while (files.hasNext()) {
          var backup = files.next();
          var created = backup.getDateCreated();
          if (created > current)
            recent |= true;
        }
      }
    
      if (!recent) {
        GmailApp.sendEmail(
          "your.mail@gmail.com", 
          "Mail Subject: Backup issue",
          "Mail Body: There is no recent upload!");
      }
    }
    

    然后你必须创建一个每X小时自动运行该功能的触发器:点击编辑>当前项目的触发器和链接“没有设置触发器。单击此处立即添加一个”,并设置触发器以每X小时的时间运行isBackuped

    警告:您需要获得此脚本的许可才能访问您的云端硬盘和Gmail帐户。第一次运行该功能时会询问,因此请使用仪器栏中的播放按钮至少运行一次。