IPFS 星际传输协议的入门 (二)
IPFS在Node.js程序中使用方法
一个极简的演示程序
三种IPFS存储文件方法介绍
ipfs.dag
方式为直接以JSON文本格式固定信息到IPFS上的方法。
ipfs.files
方式为将文件固定到IPFS的方法,模拟LInux文件管理。
ipfs
方式为将文件固定到IPFS的方法,是ipfs.files
的底层实现。
记录信息最多的方法 ipfs.dag
const cid = await ipfs.dag.put({})
将一段object直接放到节点上,并返回该节点的cid
const content = (await ipfs.dag.get(cid)).value
从节点上获取cid的实际值并读取
最方便的方法 ipfs.files
await ipfs.files.write(path='',content='',{create:true})
异步的创建一个文件。(不用await这样就能完成异步操作)
await ipfs.files.mkdir(path='',{parents: true})
异步创建一个文件夹。(不用
await这样就能完成异步操作)
await ipfs.rm(path='',{recursive: true})
异步的删除一个文件夹或文件,。(不用
await这样就能完成异步操作)
看看就算了的方法 ipfs
const addCid = await all(ipfs.add({path: '', content:''}))
异步的方式新增一个文件,返回的是asyncList 需要all 方法, 使用起来容易和ipfs.files.write
混淆。
const catContent = await all(ipfs.cat(addCid[0]))
异步的方式读取一个文件,返回的是asyncList需要all。
const lsContent = await all(ipfs.ls(addCid[0]))
异步的方式读取目录或文件,返回的是asyncList需要all。
const getContent = await all(ipfs.get(addCid[0]))
异步的方式读取目录或文件,如果是文件比ls多一个文件内容总体来说和ls没有太多差别。返回的是asyncList 需要all。
注意:
这里的删除并不是真的从区块链上删除了只是取消了alias和实际文件地址(hash value )之间的关
联;alias不再可以访问数据,但是hash value地址仍然可以访问数据。
const stat = ipfs.files.stat('/')
异步的读取当前文件或者文件夹的状态;不是一个一部列表不需要all也不能用for await。const content = await all(ipfs.files.read('/'))
async和await方法读取一个文件的数据; 如果不用这种方法还可以这样读取。
var contents
for await (const con of ipfs.files.read('/'))=>{
contents.push(con)
}
相关链接
[js-ipfs中文官网](https://js.ipfs.io/zh-CN/)
[js-ipfs参考手册](https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/FILES.md)
版权声明: 本文为 InfoQ 作者【AIbot】的原创文章。
原文链接:【http://xie.infoq.cn/article/e39015a1bedcecec43946fef7】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论