一个用于IPFS的轻量级JavaScript HTTP客户端库.
一个IPFS HTTP API 的替代客户端库,目的是在浏览器中尽可能轻取(<20KB).
主维护者
艾伦·肖。 。 。 .
目录
安装
这个模块需要Node.js和npm安装:
npm install --save ipfs-http-client-lite
我们支持Node.js的当前和活跃的LTS版本。 请看 节点js.org 现在这些是什么.
使用量
用右端口运行守护进程
要与 API 互动, 您需要运行本地守护进程 。 它需要打开 在正确的港口. 5001 是默认的,并在下面的示例中被使用,但它可以设定为任何需要的.
# Show the ipfs config API port to check it is correct
> ipfs config Addresses.API
/ip4/127.0.0.1/tcp/5001
# Set it if it does not match the above output
> ipfs config Addresses.API /ip4/127.0.0.1/tcp/5001
# Restart the daemon after changing the config
# Run the daemon
> ipfs daemon
(简体中文)
在网页浏览器 IPFS HTTP 客户端(无论是浏览器还是基于CDN的)中,可能会遇到一个错误,表示不允许来源. 这将是一个 CORS( “ Cross Origin 资源共享 ” ) 失败: IPFS 服务器旨在默认拒绝来自未知域的请求 。 您可以将您所拨打的域名白化, 更改您的 ipfs 配置如下 :
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://example.com"]'
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST", "GET"]'
自定义 HTTP 页眉
如果您想要随此库的每个请求一起发送自定义头, 例如授权头 。 您可以使用配置来做到这一点 :
const ipfs = IpfsHttpClientLite({
apiUrl: 'http://localhost:5001',
headers: {
Authorization: 'Bearer ' + TOKEN
}
})
导入
const IpfsHttpClientLite = require('ipfs-http-client-lite')
// Connect to ipfs daemon HTTP API server
const ipfs = IpfsHttpClientLite('http://localhost:5001')
// Note: leaving out the argument will default to this value
对于超小的捆绑大小,只需要输入你需要的方法. 譬如说.
const cat = require('ipfs-http-client-lite/src/cat')('http://localhost:5001')
const data = await cat('QmQeEyDPA47GqnduyVVWNdnj6UBPXYPVWogAQoqmAcLx6y')
在网页浏览器中
捆绑
这个模块可以被webpack捆绑并浏览器,并且应该与其他大多数捆绑者兼容.
光盘N
您可请求IPFS HTTP API客户端的远程副本,而不是本地安装(和捆绑) 破伤风。 。 。 .
要总是要求最新版本,请使用以下内容:
<script src="https://unpkg.com/ipfs-http-client-lite/dist/index.min.js"></script>
您也可以使用未删除的版本,只需从URL中删除".min".
为了达到最大限度的安全,您也可决定:
示例
<script src="https://unpkg.com/[email protected]/dist/index.js"
integrity="sha384-5bXRcW9kyxxnSMbOoHzraqa7Z0PQWIao+cgeg327zit1hz5LZCEbIMx/LWKPReuB"
crossorigin="anonymous"></script>
基于CDN的IPFS HTTP API提供: IpfsHttpClientLite 作为地球财产的构造者 window 对象。 示例
const ipfs = window.IpfsHttpClientLite('http://localhost:5001')
如果您省略了 URL, 客户端会解析 window.location.host,并使用此信息。 此功能同样有效, 如果您想要写入可以从多个不同网关运行的应用程序, 也会有用 :
const ipfs = window.IpfsHttpClientLite()
API 密码
这个模块开发量很大,并非所有的API方法都可用(或记录)了!
- IpfsHttp 客户端
- 添加
- 从 F 添加
- 从 Stream 添加 TODO: 添加文档
- 从URL 添加 TODO: 添加文档
- 添加 Pull 结构
- bitswap.stat (英语) TODO: 添加文档
- 位图. wantlist TODO: 添加文档
- 块。获得
- 块.put
- 块. stat
- 鞋带 添加
- 靴子夹. 列表
- 靴子夹.rm
- 猫
- 猫头鹰结构 TODO: 添加文档
- 配置. 获得
- 配置. 替换
- 配置设置
- 获取
- 弹出
- 达格。 树
- dht. findPeer (英语)
- dht.findProvs (英语)
- dht.get (英语)
- dht. 提供
- dht.put 数据
- dht.query (英语)
- 数字
- 文件.cp
- 文件. flush 存档
- 文件.ls
- 文件.lsPullStream
- 文件.mkdir
- 文件.mv
- 文件。已读
- 文件. read PullStream
- 文件.rm
- 文件. stat
- 文件. write
- 编号 TODO: 添加文档
- 键。导出
- 键.gen
- 键。导入
- 密钥. list
- 键。重命名
- 密钥。rm
- 这是 TODO: 添加文档
- is Pull 结构 TODO: 添加文档
- 名称.pubsub.cancel
- 名称.pubsub. state
- 名称.pubsub.subs
- 对象.数据
- 对象。获得
- 对象.links
- 对象. new
- 对象. patch.addLink
- 对象.patch.附录Data
- 对象. patch.rmLink
- 对象.patch.setData
- 对象.put
- 针头. add
- 针头.ls
- 针头.rm
- ing TODO: 添加文档
- 平顶结构 TODO: 添加文档
- 阴道
- pubsub.peers (英语)
- publish (英语)
- pubsub.订阅
- pubsub.un订阅
- 参考
- 校对 PullStream
- 当地法官
- 参考:本地PullStream
- 重现.gc
- repo.stat (英语)
- repo.version (英语)
- 页:1
- 关闭
- 数据。 位图
- 数据.bw
- 统计器.bwPullStream
- 统计.repo
- war. 添加器
- war. 连接
- war. 断开
- 群居当地
- war. 同行
- 版本 TODO: 添加文档
注:所有API方法都使用"承诺"(promises/async/await)来记录,但他们也接受回调作为最后的参数.
测试
我们通过执行来测试 npm test 在终端窗口。 这将同时在Chrome和PhantomJS进行Node.js和浏览器测试。 确保模块符合 interface-ipfs-core spec, 我们运行接口模块提供的批次测试, 可以找到 这里。 。 。 .
贡献
随便下潜吧! 打开一个问题 或者提交公关.
想黑进IPFS吗?
许可证
根据Apache 2.0和麻省理工学院的规定持有双重许可证:
- Apache 许可证,2.0版本, (自由主义 或者说 http://www.apache.org/licenses/LICENSE-2.0 (中文(简体) )(中文(简体) )
- 麻省理工学院许可证利马 或者说 http://opensource.org/licenses/MIT 互联网档案馆的存檔,存档日期2013-12-02(中文(简体) )
