首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ipfs-http-client API通过英弗拉的网关为IPFS插入散列

如何使用ipfs-http-client API通过英弗拉的网关为IPFS插入散列
EN

Stack Overflow用户
提问于 2021-03-16 17:27:04
回答 3查看 2.6K关注 0票数 1

文档显示请求的格式如下:

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

我目前正在使用JavaScript的API ipfs http-客户端进行Http调用。

来自add源代码函数似乎没有提供一种表示钉扎的方法:

代码语言:javascript
复制
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节点上。似乎有两种方法允许您将散列添加到节点(没有固定的和带固定的另一个 ),这两种方法都可以通过以下方法调用:

代码语言:javascript
复制
const result = await ipfs.add(data)

我想知道我该如何选择添加哈希并将其钉在一起。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-17 09:17:58

您可以在一个操作中添加和插入:

代码语言:javascript
复制
await ipfs.add(buf, {
  pin: true  // <-- this is the default
})

或两个:

代码语言:javascript
复制
const { cid } = ipfs.add(buf, {
  pin: false
})

await ipfs.pin.add(cid)

简而言之,ipfs.add将内容添加到IPFS节点的回购中,并返回该内容的CID,并且可以在添加期间插入。

ipfs.pin.add只是插入一个CID,如果您没有这些内容,这是很有用的,但可能希望帮助在网络上复制它。它将首先检查回购,以确定内容是否存在-如果没有,它将在网络上找到它,并将其添加到回购,然后防止它被垃圾收集(一个人工操作期间,所有非固定的内容被删除从你的回购)。

有关更多信息,请参见ipfs.addipfs.pin.add的文档。

票数 2
EN

Stack Overflow用户

发布于 2021-03-16 22:02:09

我从来没有使用过呋喃,我真的不明白他们的认证应该如何工作(链接页面没有提供更多的细节)。但是,假设它是通过auth令牌工作的,那么它将遵循以下思路:

代码语言:javascript
复制
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节点本身相同的API,您可以在这里找到有关方法的详细信息( https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/ )。

如果您试图找出将东西发送到服务器的位置,则在addAll函数中发生了add调用的https://github.com/ipfs/js-ipfs/blob/c47a6335b77d5284711f13a83349000820f85775/packages/ipfs-http-client/src/pin/add-all.js#L10-L33

addAll引脚、多个CID和retuns、AsyncIterable<CID>last(all(...))只选择最后一个CID (只有一个CID,因为add引脚只有一个)。

票数 0
EN

Stack Overflow用户

发布于 2021-03-16 22:06:20

恩弗拉确实是通过象征性的方式工作的。你可以在这篇博文中读到更多关于它的信息:https://blog.infura.io/part-2-getting-started-with-ipfs-on-infura/

希望,这将消除任何混乱,并提供一些更多的信息,如何与因弗拉与IPFS工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66660309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档