ipfs01
IPFS音乐播放器
IPFS相关
IPFS第一次亲密接触
什么是IPFS
IPFS对比HTTP/FTP等协议的优势
IPFS应用场景
ipfs入门
- 官网地址:https://ipfs.io
- 下载安装:https://dist.ipfs.io/#go-ipfs
- 节点初始化
ipfs init- 如果出现
Error: cannot acquire lock: can't lock file删除其后边给出的repo.lock文件即可
- 节点配置
ipfs id查看当前节点id等信息ipfs config showipfs配置信息
- 节点服务器daemon
ipfs daemon
- 修改IPFS默认路径
- 开放API请求
- ipfs config --json Addresses.API '"/ip4/0.0.0.0/tcp/5001"'
- 开放公共网关
- ipfs config --json Addresses.Gateway '"/ip4/0.0.0.0/tcp/8080"'
发布数据
上传文件
ipfs add haha.txt文本ipfs add cat.jpg图片ipfs add -q cat.jpg只输出hash结果hash记录返回的文件路径信息
上传/查看目录
添加目录:
ipfs add -r dir查看目录:
ipfs ls Qmej3u92BHJVkkiC8F5uL1J4a98no76TnXmQxHGXCHGE7t发布网站
把包含index.html的文件夹add到ipfs网络即可
获取数据
命令行获取 cat/get
ipfs cat QmaoahyA1UejtgPifPvjpsviePsDnJn8vHrYAN9nfF7w9N 查看文本
ipfs cat QmaoahyA1UejtgPifPvjpsviePsDnJn8vHrYAN9nfF7w9N > new-haha.txt 保存文本
ipfs cat Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u > new-cat.jpg保存图片
ipfs get QmZSwQghczB41omjfJipFPQ3FovYyLvXR9oa4Y9LQS7Urp -o tomcat.jpg获取并保存文件
ipfs get QmZSwQghczB41omjfJipFPQ3FovYyLvXR9oa4Y9LQS7Urp -Cao tomcat-go 压缩并下载文件
ipfs get QmYtrQVXatZGm1WRKZ29vUt5tFa24xnTvhv6D71DSNVttZ -o ipfs-day01获取文件夹
浏览器访问获取
在http://localhost:5001/webui下搜索hash值,可以raw查看原数据,download下载文件
在8080端口访问:http://localhost:8080/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u
在ipfs.io访问:https://ipfs.io/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u
不需要翻墙的网关:https://ipfs.infura.io/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u
文本数据
图片数据
音频数据
files文件/文件夹操作
ipfs files cp <文件/文件夹的hash> <目标文件/文件夹> 拷贝文件
ipfs files ls -l 查看目录
在github客户端需要加两个斜杠//
ipfs files mkdir 创建目录
ipfs files cp 拷贝
ipfs files mv 移动
ipfs files stat 状态
ipfs files read 读取
React音乐播放器
音乐列表数据
音乐名称/歌手等文本信息
专辑图片展示
播放音频数据
网易音乐api地址:
ipfs-api:https://github.com/ipfs/js-ipfs-api
- 初始化环境端口号开启服务:
# 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
- cat获取数据
ipfs.files.cat("QmY4NqRyr9SebC3P6W3pzg22UK3QsJNDKGzDHqQZsEyPi3", function (err, file) {
if (err) {
throw err
}
const json = file.toString('utf8');
console.log(json)
that.setState({
songInfo: JSON.parse(json)
}) })
- add 添加数据
const ipfsAPI = require('ipfs-api')
const ipfs = ipfsAPI('localhost', '5001', {protocol: 'http'})
const buffer = Buffer.from('hello ipfs-api!')
ipfs.add(buffer)
.then( rsp => console.log(rsp[0].hash))
.catch(e => console.error(e))
设置cors
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST", "OPTIONS"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Headers '["Authorization"]'
ipfs config --json API.HTTPHeaders.Access-Control-Expose-Headers '["Location"]'
ipns
- 绑定ipfs节点, 把一个文件/文件夹的hash发布到自己的ID下
ipfs name publish QmSx37PT8iV2XxzfHLMRYSxZEt87uE3jdQwCyz7otd5ktP
- 查看节点绑定的ipfs路径
ipfs name resolve [peerId]
- 离线客户端框架: https://github.com/electron/electron
ipfs01的更多相关文章
随机推荐
- Unity3d在各个平台读取Sqlite3数据库
这也是我第一次在Unity3d中使用Sqlite来作为配置表文件,当然了,SQLite有优秀的读写性能. 如果这个项目用着稳定的话,我会一直使用下去. Android平台: 1,下载libsqlite ...
- python 实现远程上传文件夹
python2 upload.py "ip" "root" "password" "22" "Only Pro ...
- Linux服务器SMB服务挂载目录
挂载方法 mount -o username=账号,password=密码 //SMB服务器IP/共享目录 /挂载点 smbclient链接 smbclient //SMB服务器IP/共享目录/ -U ...
- WebGL学习笔记(3)
根据上篇笔记,在对3D对象可进行普通的控制后,以及学习了http://hiwebgl.com的教程第10章内容:世界模型的载入以及控制镜头移动,经过多次调试矩阵代码,已经可以实现在世界中旋转镜头/控制 ...
- shiro笔记-"Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - ylw, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should ext
在学习shiro过程中遇到这个错误,在网上找了好久资料也没找到解决办法,大概都是说和传入的值有问题.于是我试着耐心看我自己的报错信息,最终找到了原因并解决.每个人的问题可能都会有差异,所以建议大家耐心 ...
- docker安装MySQL 8.0及初始化错误处理
Preface Several days ago,I've implement a docker environmnet,I'm gonna Install a MySQL 8. ...
- git 错误 RPC
remote: Enumerating objects: 3772, done. error: RPC failed; curl 18 transfer closed with outstanding ...
- 爬虫——Selenium与PhantomJS
Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同的是Selenium可以直接运行在浏览器上, ...
- Tools - GitBook
GitBook图书绑定自定义的域名 https://jingyan.baidu.com/article/335530daf86c3b19cb41c3f3.html
- python的列表数据类型及常用操作
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表可以进行的操作包括索 ...