一个简单的ipfs音乐播放器的实现
IPFS音乐播放器
IPFS相关
IPFS第一次亲密接触
什么是IPFS
IPFS对比HTTP/FTP等协议的优势
IPFS应用场景
-移动数据 交易 路由 网络
- 定义数据 命名
- 使用数据
具体场景;
挂载全球文件
版本管理功能
数据库
加密平台
各种类型cdn
永久访问的链接
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 查看目录
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
一个简单的ipfs音乐播放器的实现的更多相关文章
- 一个简单的Android音乐播放器
Android小白的期末作业 Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自鼻子亲了脸 传送门: GitHub 参考: anddiencn 实现功能 展示出本地的 ...
- 【源码分享】mui实现简单的手机音乐播放器
mui实现简单的手机音乐播放器 最近先来无事,我用mui写了一个可以跨页面控制的音乐播放器.主要功能有上一曲,下一曲,播放,暂停,感兴趣的可以继续看下去. 说的总是不实在,直接上源码,有兴趣的可以读下 ...
- 一款非常简单的android音乐播放器源码分享给大家
一款非常简单的android音乐播放器源码分享给大家,该应用虽然很小,大家常用的播放器功能基本实现了,可能有点还不够完善,大家也可以自己完善一下,源码在源码天堂那里已经有了,大家可以到那里下载学习吧. ...
- android快捷简单的实现音乐播放器
自己做了一个相对完整的音乐播放器,现在把播放模块提取出来,分享给大家.音乐播放器基本功能都实现了的,可能有些BUG,希望谅解. 播放器功能如下: 1.暂停,播放 2.拖动条实现,快进,快退 3.歌词同 ...
- Audio 标签的使用和自己封装一个强大的React音乐播放器
原文地址:https://www.dodoblog.cn/blog?id=5be84d5c70b2b617f27a4610 这篇文章主要介绍一下博客里的这个音乐播放器是怎么写的 为了更好的表达高深的东 ...
- 超简单解决linux音乐播放器乱码问题
问题 中文MP3的tag信息有些因为采用了GBK编码, 导致linux下的大多播放器(Rhythmbox, Audacious)无法正确识别而显示乱码. 如下图Audacious的乱码情况. 网上的常 ...
- 简单的HTML5音乐播放器(带歌词滚动)
// // 0) { this.lrcArr.push(item); } } frag = document.createDocumentFragment(); for(i = 0,len = t ...
- 简单风格 在线音乐播放器(支持wav,MP3等)
找了两天终于找到了,支持wav,MP3,其他格式没有测试. 1.修复了jQuery判断ie的bug, 2.修复播放循环 下载地址: http://pan.baidu.com/s/1o6upwHs
- Simple2D-14(音乐播放器)简介
接下来文章中,会介绍一个简单的程序——音乐播放器.通过编写一个音乐播放器在 Simple2D 中加入两个库:音频库 bass 和界面库 ImGui. 下面是音乐播放器的预览图: 播放器的功能比较简单, ...
随机推荐
- Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象
EF写了个简单的框架,在把查询出来的数据修改回去时,报了ObjectStateManager 中已存在具有同一键的对象这样一个错误,寻寻觅觅终于找到了最终的解决方案. ObjectStateManag ...
- python 并发编程之多线程
一.线程理论 1.什么是线程 多线程(即多个控制线程)的概念是,在一个进程中存在多个线程,多个线程共享该进程的地址空间,相当于一个车间内有多条流水线,都共用一个车间的资源. 所以,进程只是用来把资 ...
- JavaScript高阶函数map/reduce、filter和sort
map() 举例说明,比如我们有一个函数f(x)=x²,要把这个函数作用在一个数组[1,2,3,4,5,6,7,8,9]上. 由于map()方法定义在JavaScript的Array中,我们调用Arr ...
- HTML5笔记——第一节
我的第一个网页 <!--html的基础模板--><!--html hyperText markup Language--><!--声明文档类型--><!DOC ...
- linux下重新启动oracle
第一步.以Oracle帐户进入Linux系统 第二步.执行以下命令查看数据库监听器的状况: lsnrctl status 或者查看数据库端口是否被监听(默认1521) netstat -ano | g ...
- Java秒杀系统方案优化 高性能高并发实战(已完成)
1:商品列表 2:商品详情判断是否可以开始秒杀,未开始不显示秒杀按钮显示倒计时,开始显示秒杀按钮,同时会显示验证码输入框以及验证码图片,当点击秒杀按钮的时候会首先判断验证码是否正确,如果正确会返回一个 ...
- seajs简单使用
背景:在做一个功能时需要用到一个JS库,但是这个库比较大,想要在只有用到这个功能时再去加载这个库. <script src="~/Scripts/jquery-1.10.2.min.j ...
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--K-密码
链接:https://www.nowcoder.com/acm/contest/90/K 来源:牛客网 - 1.题目描述 ZiZi登录各种账号的时候,总是会忘记密码,所以他把密码都记录在一个记事本上. ...
- Spring+SpringMVC+Mybatis(二)
上一次讲的是利用mybatis提供的sqlSessionTemplate作为DAO进行数据库的操作,其实我们可以把它封装到我们自己的DAO里面,这样就是所谓的自己写DAO,这次我们写一下通过mybat ...
- httpd的prefork、worker、event
Apache(httpd) 有3种核心MPM(Multi-Processing Module,多进程处理模块)工作模式,分别是prefork,worker和event,其中httpd-2.2的even ...