我正在编写一个zapier触发器,我需要启动我们的文件下载api,后者又提供了一个url来轮询,一旦我获得文件就绪状态,我就可以构建一个文件下载URL。是否可以在触发器中包含轮询代码? zapier支持的文件是否有任何大小限制?有了我的下载网址,可以直接使用这段代码吗?
return _.map(records, function(record) {
// if you just do url, we'll include any standard authentication headers
record.file = z.dehydrateFile('//mysite.com/mypath/download' + record.id);
return record;
});
大卫来自Zapier平台团队。
您可以在触发器中基本上执行任何操作,但需要记住以下几项重要事项:
注意:如果您通过短暂的URL发送文件,则应该只在水合方法中使用z.stashFile()或者使用钩子触发器执行。否则,在轮询调用中存储数十个文件可能非常昂贵
这里最糟糕的情况是每次我们轮询(每5-15分钟发生一次),你等待每个结果的文件并每次都存储它(不知道用户是否需要它)。
您应该按照文档中的示例进行操作,在Zapier轮询期间,您将使轮询操作脱水。当我们确定一个项目是新的时,我们将进行该轮询,在文件准备好后将其存档,并将其适当地发送给用户。
通常应避免轮询,因为它会导致性能问题。如果可以,您可能希望在后台函数(请参阅serverless
函数)或后台代码中编写轮询代码。它为你做了繁重的工作。创建一个Zapier Webhook
。从后台代码/函数中,对POST
执行文件/数据的HTTP Webhook
(就像创建/更新新项目一样)。这种结构/架构使您的触发器。使用上面的用例,您只需将下载URL发送到Webhook
即可。之后,您可以添加zap
来使用此触发器并使用传入的数据并发送到action
。这使它更加清洁和高效。
参考:Webhooks