如何解决如何使用 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.add 和 ipfs.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-L33 的 add
函数中
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 举报,一经查实,本站将立刻删除。