Nodejs
在 IPFS 中獲取數據的方法更快
我有一個從 ipfs 網路獲取數據的站點,我目前正在將它與 axios.get(“http://ipfs.io/ipfs...") 一起使用,有時區塊鏈真的很慢,所以我不知道還有另一個獲取這些數據的最佳方法。
也許直接使用 ipfs 協議獲取它,如何使用 nodejs 來做到這一點?
IPFS 與區塊鏈無關。它是一個點對點文件系統。雖然主機 ipfs.io 經常被過度使用,所以它可能很慢。
我會嘗試不同的 IPFS 提供商,例如 Cloudflare 或 infura.io ( https://infura-ipfs.io/ipfs/ )。請注意,它們通常受到速率限制,因此可能更好地扮演您自己的 IPFS 節點。
如果您想通過 nodejs 連接到不同的節點,那麼這裡有一些程式碼可能會有所幫助:
import { create } from 'ipfs-http-client'; const fs = require('fs'); // and then call the below function async function getIpfsFileAsArchive(ipfs, cid){ for await (const buf of ipfs.get(cid, {archive: true, compress: true})) { const ipfs = await create({host: "replace with ipfs host ip address"}); fs.createWriteStream(`./ipfs/${cid}.tar.gz`).write(buf); } }