无法在Zapier自定义CLI APP操作上发布具有原始文件名的文件

时间:2019-02-04 12:54:18

标签: node.js file-upload zapier node-request zapier-cli

我正在创建一个ZAPIER CLI APP,在APP中,我正在创建一个通过其余API上传文件的操作。 我跟随这个示例应用程序Sample APP进行了很小的更改,我只有一个输入字段“ file”,在我的应用程序中没有“ filename”的输入字段。 这是我的代码:-

const uploadFile = (z, bundle) => {
  const formData = new FormData();  
  formData.append('file', request(bundle.inputData.file)); 

return z.request({
  url: 'MY API ENDPOINT',
  method: 'POST',
  body: formData,
})
.then((response) => {
  return response.json;
});

};

但是这对我发送不正确的文件名以休整API无效。这将发送一个长字符串代替文件名。这是我在服务器(API)端获得的东西

  

这是使用上述代码时收到的示例:-

  `[name] => .eJwtj1GOwiAURffCt5QygC0sYrZAXuFpSVuKgGPUdO-DiZ_35Obm3DcJsVSIDm3wxCguuBJan8gl4OpthA2JIR7_7CWsSE7EzegWu-CTGCm0Oqu-sT1WjNXWZ_q0f1tteUC-FmLe5J7XxuZaUzGMvSAFzBQ3CCtNkEsLUCu4eWsLpSuigw1ee4RH6dy-sZ-ea9pzKnrGhRDjqOTIBnS91F5RrQZHJUwT1RMqyrn0TgzgcOKMW96leG0yX6_vg4y3O5ba3I7j-AdX6FEq:1gqcEs:zXfK_evEDwf09Yp4IhuAaqxt464
            [type] => application/octet-stream
            [tmp_name] => /tmp/php0qvnl0
            [error] => 0
            [size] => 394106`

我的代码有什么问题吗?

当我通过下面的代码将文件名传递到文件字段时,它是有效,但是您可以看到我通过了 hardcode filename“ unicycle .jpg” ,我想保持动态。

formData.append("file", request(bundle.inputData.file), {filename: 'unicycle.jpg'});

有什么办法吗?

1 个答案:

答案 0 :(得分:0)

Zapier Platform团队的David在这里。

Zapier一旦在我们的系统中就看不到文件名,因此,如果要命名文件,则需要用户提供文件名。我建议为const { range } = require("rxjs"); const { map, filter } = require("rxjs/operators"); range(1, 200).pipe( filter(x => x % 2 === 1), map(x => x + x) ).subscribe(x => console.log(x)); 添加一个输入字段,并将其映射到filename调用中。