在 Google 驱动器文件保存和打开 addon/apps 脚本中拦截或获取回调

Intercept or get callbacks on Google Drive file save and open in addon/apps script

我想为 Google 驱动器构建和加载项,以便在上传文件时和 opened/downloaded 之前执行额外的 pre-processing/decoration 文件。例如。 add/verify 数字签名,调用第 3 方服务传递文件元数据,转换为不同的 MIME 类型,encrypt/decrypt 某些文件具有由第 3 方服务生成的自定义密钥。 我查看了所有 APIs 并没有找到任何允许拦截文件 uploads/downloads 并进行预处理的功能(例如拦截上传的内容,将其读取为 blob,进行处理,然后将其保存到Google 驱动器文件夹,稍后当用户下载文件时,以对用户透明的方式对文件内容和 return 再次执行 pre-processing/verification 最终结果。

拦截内容的另一种可能性是尝试拦截文件 selection/upload 事件并将文件扩展名或路径更改为临时文件夹,然后触发处理脚本并将结果保存到原始目的地。

我更愿意避免通过我的自定义后端代理文件 uploads/downloads,在 addon/apps 脚本的上下文中执行所有必需的处理。

我对 AppsScript GSUite Drive API(文件、文件夹、驱动器 类)与 Google Drive v2 API 和 [=32 的关系感到有点困惑=]()、频道等... 后者仅供后端使用吗? 我看不到 AppsScript API 提供的 events/callbacks 的任何概念,理论上应该是 运行 我在当前用户上下文中的插件。

我希望我能够在 API 上提出更具体的问题,但目前我正在努力了解如何为我的插件做基本的挂钩以对文件进行操作。

你不能拦截他们。使用 Drive Add-on you can only trigger functions when the user enters Drive's homepage or when the user select a file(s). With the API you can watch 当一个文件被修改时为了得到一个通知,但是这将在更改完成之后而不拦截更改过程。

如果您使用 OnItemsSelectedTrigger, you need to prompt/return a Card when the user selects a file(s), in this card you can set buttons that when clicked by the user it can trigger different actions.