AppsScript-在HtmlService中使用来自Google Drive的图像
下面文档的“图像”部分 表示只能显示位于公共url上的图像(由于使用了图像代理) 这是否适用于存储在用户谷歌硬盘中的图像?AppsScript-在HtmlService中使用来自Google Drive的图像,html,image,google-apps-script,Html,Image,Google Apps Script,下面文档的“图像”部分 表示只能显示位于公共url上的图像(由于使用了图像代理) 这是否适用于存储在用户谷歌硬盘中的图像? 有没有办法将这些图像用作HtmlService元素?听起来你想从Google Drive提供某种公众可访问的永久链接 打开文件 在文件菜单下,单击共享 在“谁有访问权”下,单击更改。 选择“网上公开”。 单击“完成”,然后复制列出的链接。这是你的公开链接,应该为你工作。 目前还没有一种方法可以满足您的要求。您可以使用base 64编码嵌入图像 function g
有没有办法将这些图像用作HtmlService元素?听起来你想从Google Drive提供某种公众可访问的永久链接
- 打开文件
- 在文件菜单下,单击共享
- 在“谁有访问权”下,单击更改。
- 选择“网上公开”。
- 单击“完成”,然后复制列出的链接。这是你的公开链接,应该为你工作。
function getFileBase64s(fileName) {
var output = [];
if (typeof fileName === 'string'){
var fileIterator = DriveApp.getFilesByName(fileName);
while (fileIterator.hasNext()) output.push(Utilities.base64Encode(fileIterator.next().getBlob().getBytes()));
} else {
SpreadsheetApp.getUi().alert('File name: '+fileName+' is not an string')
};
return output;
};
在HTML模板中:
当您使用高级驱动器服务访问文件时,元数据具有一个名为“thumbnailLink”的属性,该属性适用于在Html服务中显示图像,尤其是当您不想公开共享的文件时。它也比base64方法快得多。链接将在数小时内过期,因此您每次都需要执行一个新的请求
对于单个图像,以下操作可以实现此目的:
Drive.Files.get(id).thumbnailLink
Nice!谢谢你的提醒(错误等)。事实上,我不想永久链接到谷歌硬盘上的图片视图,但实际上我将该图片作为html的一个元素。再次感谢你的明确回答。你知道有没有计划支持这一点吗?有驱动器却不能在HtmlOutput中使用它似乎有点奇怪。我不能保证任何事情,但这肯定是我们已经意识到并正在研究的一个用例。现在限制实际上已经取消了。您可以使用drive.google.com/uc?export=view&id=链接到google drive上的私人图像。但是授权有点奇怪。我有两个开发谷歌帐户和我的个人谷歌帐户,没有特权的应用程序以及图像登录。谷歌应用程序允许我访问该应用程序,但它在加载图像时给了我403。在我注销个人帐户后,它突然起了作用。不确定发生了什么。你可以创建、插入图像、复制图像链接并在谷歌应用程序脚本中使用它:)