【问题标题】:Cloudconvert - Invalid signature error when using request-promise to upload via APICloudconvert - 使用请求承诺通过 API 上传时出现无效签名错误
【发布时间】:2020-10-09 22:44:40
【问题描述】:

我正在尝试使用 nodeJS 和 request-promise 通过 cloudconvert API 上传 pdf。获取上传 URL 和参数的请求是成功的,但是当我尝试传递数据时,我得到一个 401 - "FormPost: Invalid Signature" 错误,即使我使用的是从第一个请求返回的签名。

...
pdfToPng: function(pdfBuffer, apiKey) {
    return new Promise(async (resolve, reject) => {
      const cloudConvert = new CloudConvert(apiKey);
      let response = JSON.parse(
        await request.post('https://api.cloudconvert.com/v2/import/upload', {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${apiKey}`,
          'Content-type': 'application/json',
        },
      }));
      let fileUrl = response.data.result.form.url;
      let params = response.data.result.form.parameters;
      let fileUpload = await request.post({
        url: fileUrl,
        formData: {
          "expires": params.expires,
          "max_file_count": params.max_file_count,
          "max_file_size": params.max_file_size,
          "signature": params.signature,
          "file": {
            value: pdfBuffer.toString('base64'),
            options: {
              filename: 'invoice.pdf',
              contentType: 'application/pdf'
            }
          }
        }
      }).catch((err) => {
        console.log('ERROR UPLOADING FILE: ', err); //<-- 401 Error here
        reject(err);
      })
      console.log('FILE UPLOAD RESPONSE: ', fileUpload);
...

【问题讨论】:

    标签: node.js request-promise cloudconvert


    【解决方案1】:

    您需要将response.data.result.form.parameters的所有参数传递给formData,而不仅仅是命名的:

      let fileUpload = await request.post({
        url: fileUrl,
        formData: {
          ...response.data.result.form.parameters,
          "file": {
            value: pdfBuffer.toString('base64'),
            options: {
              filename: 'invoice.pdf',
              contentType: 'application/pdf'
            }
          }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多