Google Apps脚本:我可以将文件保存在Google云端硬盘上,而无需计算生成文档吗?

时间:2014-06-16 21:39:24

标签: google-apps-script

我写了一个脚本来将电子邮件图片附件保存到Google云端硬盘中。但我每天收到超过250张(安全摄像头快照)。

脚本运行正常,但我收到以下消息:

  

服务在一天内被调用太多次:docslist create

循环播放线程,消息和附件后,我将附件保存为:

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

是否有其他方法可以保存文件,让我可以浏览Apps脚本限制?

2 个答案:

答案 0 :(得分:2)

问题的答案是:quota limit for a consumer account为250,除了获取其他类型的帐户外,无法解决此问题(请参阅上面链接中的配额)。

您可以做的是将所有图像存储在一个文档中,每天一个。由于文档可以包含大量图像(我甚至不知道是否存在限制......'*)

使用它甚至可能更方便。

'*: this doc for example是一个收集SO用户发布的图片的文档,这些图片是我几个月前在线投放的一种形式,而且每天都在变大(截至今天已超过200页,仍在增长) ; - )


编辑:关注您的评论:

您只需使用blob将图像附加到doc即可。下面的示例我从驱动器中获取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();
}

答案 1 :(得分:0)

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

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