AppsScript-在HtmlService中使用Google云端硬盘中的图片

时间:2012-06-28 17:01:56

标签: html image google-apps-script

以下文件的图像部分

https://developers.google.com/apps-script/html_service

表示只能显示托管在公共网址上的图片(由于使用了图片代理)。

这是否适用于存储在用户的Google云端硬盘中的图片? 有没有办法将这些图像用作HtmlService元素?

3 个答案:

答案 0 :(得分:4)

还没有办法做你要问的事。

答案 1 :(得分:1)

听起来您正试图通过Google云端硬盘提供可公开访问的某种永久链接。

  • 打开文件。

  • 在“文件”菜单下,单击“共享”。

  • 在“谁有权限”下,单击“更改”。 private

  • 选择“在网络上公开”。 sharing options

  • 点击完成,然后复制列出的链接。这是您可以使用的公开链接。 public link

答案 2 :(得分:0)

当您使用高级驱动器服务访问文件时,元数据有一个名为“thumbnailLink”的属性,它非常适合在 Html 服务中显示图像,尤其是当您不想公开共享的文件时。它也比 base64 方法快得多。该链接将在数小时内过期,因此您每次都需要重新请求。

对于单个图像,以下内容可以解决问题:

Drive.Files.get(id).thumbnailLink

对于多个图像,您可以使用高级驱动服务中的列表方法。例如,以下将访问给定 id 的文件夹中的所有图像。

  var query =  "'"+id+"' in parents and mimeType contains 'image/'"
  var files;
  var pageToken;
    do {
      files = Drive.Files.list({
        q: query,
        maxResults: 300,
        pageToken: pageToken
      });
      if (files.items && files.items.length > 0) {
        for (var i = 0; i < files.items.length; i++) {
          var file = files.items[i];
          var title = file.title
          var src = file.thumbnailLink
        }
        
      }
      pageToken = files.nextPageToken;
    } while (pageToken);

您还可以通过将“s220”字符串替换为更大的数字来调整图像的大小,例如,src = src.replace("s220","s1000")。