浏览器中的 IPFS:测试一个简单的文件获取

IPFS in browser: testing a simple file fetch

我想下载 this 文件并使用浏览器内的 IPFS 节点将其内容打印到控制台。以下 html 文件应该可以完成这项工作:

<!doctype html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
</title>
  </head>
  <body>
      <script type='text/javascript' src='https://unpkg.com/ipfs@0.55.1/dist/index.min.js'></script>
      <script type="text/javascript">

var ifile = 'Qmc3zqKcwzbbvw3MQm3hXdg8BQoFjGdZiGdAfXAyAGGdLi';
(async () => {
    const inode = await Ipfs.create({
        config: {
            Addresses: {
                Swarm: [
                    // These webrtc-star servers are for testing only
                    '/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star',
                    '/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star'
                    ]
                },
                Bootstrap: []
        }
    })
    window.inode = inode; //For poking
    
    for await (const chunk of inode.cat(ifile)) {
         console.log(chunk.toString());
    }
})();

      </script>
      Testing IPFS file fetch
</body></html>

但是它不打印任何东西。我错过了什么?

您没有任何 bootstrap 节点,因此找不到 CID。例如,如果您添加我的节点,它可以正常工作:

<!doctype html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>
</title>
  </head>
  <body>
      <script type='text/javascript' src='https://unpkg.com/ipfs@0.55.1/dist/index.min.js'></script>
      <script type="text/javascript">

var ifile = 'Qmc3zqKcwzbbvw3MQm3hXdg8BQoFjGdZiGdAfXAyAGGdLi';
(async () => {
    const inode = await Ipfs.create({
        config: {
            Addresses: {
                Swarm: [
                    // These webrtc-star servers are for testing only
                    '/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star',
                    '/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star'
                    ]
                },
                Bootstrap: []
        }
    })
    window.inode = inode; //For poking
    
    await inode.swarm.connect("/dns6/ipfs.thedisco.zone/tcp/4430/wss/p2p/12D3KooWChhhfGdB9GJy1GbhghAAKCUR99oCymMEVS4eUcEy67nt");
    
    for await (const chunk of inode.cat(ifile)) {
         console.log(chunk.toString());
    }
})();

      </script>
      Testing IPFS file fetch
</body></html>