【问题标题】:Rollbar 413 when using Node, but not when using curl使用 Node 时出现 Rollbar 413,但使用 curl 时不出现
【发布时间】:2019-08-21 00:43:10
【问题描述】:

我正在尝试将源地图上传到 Rollbar。使用 curl 可以正常工作:

curl https://api.rollbar.com/api/1/sourcemap \
        -F access_token=${ACCESS_TOKEN} \
        -F version=${VERSION} \
        -F minified_url=${1} \
        -F source_map=@${SOURCE_MAP_PATH}

但是,使用 Node 应用程序,我得到Error: Request failed with status code 413

const fs = require('fs');
const FormData = require('form-data');
const axios = require('axios');

const stream = fs.createReadStream('/path/to/sourcemap');
const config = {
  filename: 'sourcemap',
  contentType: 'application/json',
}

const formData = new FormData();
formData.append('access_token', 'the-token');
formData.append('version', '1.2.3');
formData.append('minified_url', 'https://example.com/1.2.3/minified.js');
formData.append('source_map', stream, config);

axios.post('https://api.rollbar.com/api/1/sourcemap', formData, {
  headers: formData.getHeaders(),
});

这些都是完全相同的文件。不知道为什么 Node 版本不起作用。

编辑

有趣的是,如果我生成 curl 命令,那么它可以工作:

const execaArgs = [
    'https://api.rollbar.com/api/1/sourcemap',
    '-F',
    'access_token=abc',
    '-F',
    'version=1.2.3',
    '-F',
    'minified_url='https://example.com/1.2.3/minified.js',
    '-F',
    `source_map=@${filePath}`
  ]
  const {stdout, stderr} = await execa('curl', execaArgs);

fetch也是如此:

fetch('https://api.rollbar.com/api/1/sourcemap', {
    method: 'POST',
    body: formData
  })
    .then(res => res.json())
    .then(json => console.log(json));

【问题讨论】:

  • 您可以使用以下工具转换并获取代码:curl.trillworks.com/#node 他们支持:Node.js Python PHP
  • 不适用于多部分卷曲

标签: node.js curl rollbar


【解决方案1】:

如你所说

如果我生成一个 curl 命令,那么它就可以工作

抓取也是如此

但不在 Axios 中


HTTP 413 是来自您的服务器 的“有效负载过大”,但由于它适用于 fetch 我猜它不是由服务器引起的。

你可以试试 https://github.com/mzabriskie/axios#request-config

axios({
url: '',
method: 'post',
data: {}
headers: {}
})

让我们随时更新??。

【讨论】:

  • 如果它仍然不起作用,我们需要在 Axios 文档中进行更多挖掘,并且可能会为此场景打开一个新问题。
  • 使用axios({}) 也会引发同样的错误。我让 Rollbar 看看他们说什么;我会及时通知你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
相关资源
最近更新 更多