微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 ipfs-http-client API 通过 Infura 的网关固定 IPFS 的哈希值

如何解决如何使用 ipfs-http-client API 通过 Infura 的网关固定 IPFS 的哈希值

documentation 显示的请求格式如下:

curl -X POST "https://ipfs.infura.io:5001/api/v0/pin/add?arg=&progress="

我目前正在使用 JavaScript 的 API ipfs-http-client 进行 Http 调用

source code 中的 add 函数似乎没有提供指示固定的方法

module.exports = (options) => {
  const all = addAll(options)

  return configure(() => {
    return async function add (path,options = {}) { // eslint-disable-line require-await
      return last(all({
        path,...options
      },options))
    }
  })(options)
}

更新

我应该更清楚我的问题。我主要希望能够在 IPFS 节点上“固定”我的哈希值。似乎有两种方法可以让您将哈希添加到节点(one 没有固定,the other 有固定),这两种方法都可以通过以下方式调用

const result = await ipfs.add(data)

我不知道我应该如何选择添加哈希并固定它。

解决方法

您可以在一个操作中添加和固定:

await ipfs.add(buf,{
  pin: true  // <-- this is the default
})

或两个:

const { cid } = ipfs.add(buf,{
  pin: false
})

await ipfs.pin.add(cid)

简而言之,ipfs.add 将内容添加到 IPFS 节点的存储库并返回该内容的 CID,并且可以在添加过程中固定。

ipfs.pin.add 只是固定一个 CID,如果您没有内容,这很有用,但可能想帮助在网络上复制它。 它将首先检查存储库以查看内容是否存在 - 如果不存在,它将在网络上找到它并将其添加到存储库中,然后防止它被垃圾收集(manual operation 在此期间所有非固定内容被从您的存储库中删除)。

有关详细信息,请参阅 ipfs.addipfs.pin.add 的文档。

,

我从未使用过 infura,我也不太了解他们的身份验证应该如何工作(链接页面没有提供太多细节)。但假设它通过身份验证令牌工作,它将是这样的:

const IPFSClient = require('ipfs-http-client')
const { CID } = IPFSClient
const ipfs = IPFSClient({
  url: new URL('https://ipfs.infura.io:5001'),headers: {
    authorization: `Bearer ${TOKEN}`
  }
})

const cid = await ipfs.pin.add(new CID('QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u'))
console.log(cid)

IPFS 客户端实现与 JS-IPFS 节点本身相同的 API,您可以在此处找到有关方法的详细信息 https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/

如果您要查找发送到服务器的内容的位置,则会发生在 addAll 调用 https://github.com/ipfs/js-ipfs/blob/c47a6335b77d5284711f13a83349000820f85775/packages/ipfs-http-client/src/pin/add-all.js#L10-L33add 函数中

addAll 固定多个 CID 并返回 AsyncIterable<CID>last(all(...)) 只选择最后一个 CID(将只有一个 CID,因为 add 只固定一个) .

,

Infura 确实通过身份验证令牌工作。您可以在此博文中阅读更多相关信息:https://blog.infura.io/part-2-getting-started-with-ipfs-on-infura/

希望这能消除任何混淆,并提供有关 Infura 如何与 IPFS 配合使用的更多信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。