我想为 Google Drive 构建和附加组件,在文件上传时和打开/下载之前对文件进行额外的预处理/装饰。例如添加/验证数字签名,调用第 3 方服务传递文件元数据,转换为不同的 mime 类型,使用第 3 方服务生成的自定义密钥加密/解密某些文件。我查看了所有 API 并没有找到任何允许拦截文件上传/下载并进行预处理的功能(例如拦截上传的内容,将其读取为 blob,进行处理,然后将其保存到 Google Drive 文件夹,稍后当用户以对用户透明的方式下载文件,再次对文件内容进行预处理/验证并返回最终结果。
拦截内容的另一种可能性是尝试拦截文件选择/上传事件并更改文件扩展名或临时文件夹的路径,然后触发处理脚本并将结果保存到原始目的地。
我更喜欢避免通过我的自定义后端代理文件上传/下载,在插件/应用程序脚本的上下文中执行所有必需的处理。
我对 AppsScript GSUite Drive API(文件、文件夹、驱动器类)与 Google Drive v2 API 与 Changes.watch()、Channels 等的关系感到有些困惑……后者仅用于后端吗?我看不到 AppsScript API 提供的任何事件/回调概念,理论上应该在当前用户的上下文中运行我的插件。
我希望我能够在这里就 API 提出更具体的问题,但目前我正在努力理解如何为我的插件做基本的钩子来操作文件。