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 show ipfs配置信息
  • 节点服务器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获取文件夹

浏览器访问获取

  1. http://localhost:5001/webui下搜索hash值,可以raw查看原数据,download下载文件

  2. 在8080端口访问:http://localhost:8080/ipfs/Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

  3. 在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地址:

    https://github.com/Binaryify/NeteaseCloudMusicApi

  • 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]

一个简单的ipfs音乐播放器的实现的更多相关文章

  1. 一个简单的Android音乐播放器

    Android小白的期末作业 Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自鼻子亲了脸 传送门: GitHub 参考: anddiencn 实现功能 展示出本地的 ...

  2. 【源码分享】mui实现简单的手机音乐播放器

    mui实现简单的手机音乐播放器 最近先来无事,我用mui写了一个可以跨页面控制的音乐播放器.主要功能有上一曲,下一曲,播放,暂停,感兴趣的可以继续看下去. 说的总是不实在,直接上源码,有兴趣的可以读下 ...

  3. 一款非常简单的android音乐播放器源码分享给大家

    一款非常简单的android音乐播放器源码分享给大家,该应用虽然很小,大家常用的播放器功能基本实现了,可能有点还不够完善,大家也可以自己完善一下,源码在源码天堂那里已经有了,大家可以到那里下载学习吧. ...

  4. android快捷简单的实现音乐播放器

    自己做了一个相对完整的音乐播放器,现在把播放模块提取出来,分享给大家.音乐播放器基本功能都实现了的,可能有些BUG,希望谅解. 播放器功能如下: 1.暂停,播放 2.拖动条实现,快进,快退 3.歌词同 ...

  5. Audio 标签的使用和自己封装一个强大的React音乐播放器

    原文地址:https://www.dodoblog.cn/blog?id=5be84d5c70b2b617f27a4610 这篇文章主要介绍一下博客里的这个音乐播放器是怎么写的 为了更好的表达高深的东 ...

  6. 超简单解决linux音乐播放器乱码问题

    问题 中文MP3的tag信息有些因为采用了GBK编码, 导致linux下的大多播放器(Rhythmbox, Audacious)无法正确识别而显示乱码. 如下图Audacious的乱码情况. 网上的常 ...

  7. 简单的HTML5音乐播放器(带歌词滚动)

      // // 0) { this.lrcArr.push(item); } } frag = document.createDocumentFragment(); for(i = 0,len = t ...

  8. 简单风格 在线音乐播放器(支持wav,MP3等)

    找了两天终于找到了,支持wav,MP3,其他格式没有测试. 1.修复了jQuery判断ie的bug, 2.修复播放循环 下载地址: http://pan.baidu.com/s/1o6upwHs

  9. Simple2D-14(音乐播放器)简介

    接下来文章中,会介绍一个简单的程序——音乐播放器.通过编写一个音乐播放器在 Simple2D 中加入两个库:音频库 bass 和界面库 ImGui. 下面是音乐播放器的预览图: 播放器的功能比较简单, ...

随机推荐

  1. LeetCode6.Z字形变换 JavaScript

    将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T ...

  2. ROUND()和TRUNC()函数

    ROUND(number[,decimals]) 其中:number 待做截取处理的数值: decimals 指明需保留小数点后面的位数,可选项.需要注意的是,和trunc函数不同,对截取的数字要四舍 ...

  3. iOS自动打开闪光灯

    现在好多应有都具备扫码功能,为了减少用户操作,一般会在光线比较暗的时候,自动打开闪光灯: 1.导入头文件 #import <AVFoundation/AVFoundation.h> #im ...

  4. OI 刷题记录——每周更新

    每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...

  5. Solr6.6.0添加IK中文分词器

    IK分词器就是一款中国人开发的,扩展性很好的中文分词器,它支持扩展词库,可以自己定制分词项,这对中文分词无疑是友好的. jar包下载链接:http://pan.baidu.com/s/1o85I15o ...

  6. Django---URL、Views

    1.Django URL(路由系统) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表:你就是以这种方式告诉Djang ...

  7. vue $set修改对象

    在vue开发中,当生成vue实例后,再次给数据赋值时,有时候并不会自动更新到视图上去: eg:<!DOCTYPE html> <html> <head> <m ...

  8. EpiiAdmin 开源的php交互性管理后台框架, 让复杂的交互变得更简单!Phper快速搭建交互性平台的开发框架,基于Thinkphp5.1+Adminlte3.0+Require.js。

    EpiiAdmin EpiiAdmin php开源交互性管理后台框架,基于Thinkphp5.1+Adminlte3.0+Require.js, 让复杂的交互变得更简单!Phper快速搭建交互性平台的 ...

  9. scala成长之路(4)compaion object——伴生对象的使用

    虽然java一直声称自己是完全面向对象的语言,但一直以来都被很多人所质疑,其中java的静态成员函数就是主要的“罪魁祸首”.由于java中保留了静态方法的调用,导致其编程模式依然有过程式编程的可能,尤 ...

  10. python_day4_shopping

    购物车例子,实现显示商品信息,输入商品编号并且可以减去自己的存入余额,当商品价格大于自己的余额的时候,直接退出:当不再选择商品的时候,退出显示余额和已经添加的商品. #购物车程序 product_li ...