【问题标题】:Google Apps Script: can I save a file on Google Drive without counting as generating a document?Google Apps 脚本:我可以将文件保存在 Google Drive 上而不计为生成文档吗?
【发布时间】:2014-08-06 19:24:10
【问题描述】:

我编写了一个脚本来将电子邮件图像附件保存到谷歌驱动器中。但我每天收到超过 250 个(安全摄像头快照)。

脚本运行良好,但我收到以下消息:

一天服务调用次数过多:docslist create

循环查找线程、消息和附件后,我将附件保存为:

file = subfolder.createFile(att[z]);

是否有其他方法可以让我超越 Apps 脚本限制来保存文件?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    答案就在问题中:quota limit for a consumer account 是 250,除了获得另一种类型的帐户(请参阅上面链接中的配额)之外,没有办法解决这个问题。

    您可以做的是将所有图像存储在一个文档中,每天一张。由于文档可以包含很多图片(我什至不知道有没有限制...'*)

    使用起来可能更方便。

    '* : this doc for example 是一个文档,它收集了 SO 用户以我几个月前放到网上的表格发布的图片,并且每天都在变大(截至今天超过 200 页,仍在增长;- )


    编辑:按照您的评论:

    您可以简单地使用 blob 将图像附加到文档中。下面的示例我从驱动器中获取 blob,但任何 blob 都可以完成这项工作。

    function importImage() {
      var image = DriveApp.getFilesByType(MimeType.JPEG).next().getBlob()
      var doc = DocumentApp.getActiveDocument()
      var inlineI = doc.appendImage(image);
      var width = inlineI.getWidth();
      var newW = width;
      var height = inlineI.getHeight();
      var newH = height;
      var ratio = width/height;
      Logger.log('w='+width+'h='+height+' ratio='+ratio);
      if(width>640){
      newW = 640;
      newH = parseInt(newW/ratio);
      }
      inlineI.setWidth(newW).setHeight(newH)
      doc.appendParagraph('IMAGE size : '+width+' x '+height+' (eventually) resized to '+newW+' x '+newH+' for PREVIEW');
      doc.appendHorizontalRule();
      doc.saveAndClose();
    }
    

    【讨论】:

    • 所以打开一个文本文档并使用doc.getChild(0).asParagraph().appendInlineImage(image.getBlob()) ?谢谢。会试试的。
    【解决方案2】:

    不完全是问题的答案,而是解决问题的另一种方法(存储通过电子邮件收到的大量文件):

    我最终使用 Google Apps 脚本将文件上传到单独的服务器,通过 Class UrlFetchApp 使用文件作为有效负载的 POST。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2020-08-27
      • 1970-01-01
      相关资源
      最近更新 更多