0

我有一个js-ipfs通过 URL 添加文件的功能。

async function addFile(url) {
  try {
    for await (const file of node.add(urlSource(url))) {
      console.log('Hash for ' + url.substring(url.lastIndexOf('/') + 1));
    }
  }
  catch(e) {
    console.error('Problem downloading: ' + e.toString());
  }
}

我传入的一些 URL 工作得很好,而其他 URL 将只为某些用户代理提供文件。Wget/有没有办法在 IPFS 完成的 HTTP GET 请求上指定“”的自定义用户代理urlSource

编辑:在探查了一下来源之后js-ipfs,它看起来像是node-fetch用来发出请求的。我尝试将行更改为:

for await (const file of node.add(urlSource(url, {"headers": ["User-Agent", "Wget/"]}))) {

for await (const file of node.add(urlSource(url, {"headers": {"User-Agent": "Wget/"}}))) {

基于文档,node-fetch没有骰子。Webhook.site 仍然显示我的请求具有node-fetch/1.0 (+https://github.com/bitinn/node-fetch).

4

1 回答 1

0

IPFS 论坛上的用户achingbrain指出该对象当前没有传递到构造函数中。我已提交拉取请求以修改此行为。optionshttp

于 2020-04-18T01:29:36.207 回答