之前有好几人问过小编,想在IPFS里面上传一张图片。如何做?

今天小编就讲一下如何在IPFS里面上传、下载文件?

1 下载IPFS软件

下载地址:https://dist.ipfs.io/#go-ipfs

打开这个地址后网页会根据你的当前操作系统自动为你选择可供下载的版本,这个页面上有很多ipfs相关的软件下载,看清楚下载 go-ipfs, 这是IPFS的go语言版本实现,IPFS目前还有 js版本和 python版本(开发已停滞,团队忙不过来了)

2 安装

windows:自己选择一个文件,把软件解压缩进去,然后打开命令行,定位到刚才的文件夹下

执行:

>ipfs help

USAGE:

ipfs - Global p2p merkle-dag filesystem.

...

得到上面的信息,恭喜你ipfs安装成功了

Mac 和 Linux:执行 tar xvfz go-ipfs.tar.gz解压缩刚才下载的文件,然后在解压缩的文件夹下执行: ./go-ipfs/install.sh,完成后软件就安装好了,然后:

> ipfs help

USAGE:

ipfs - Global p2p merkle-dag filesystem.

...

得到上面的信息,恭喜你ipfs安装成功了

3 配置ipfs

 

在命令行里面执行:

ipfs init

上面是在小编的电脑上的输出结果,表明ipfs的初始化配置完成,ipfs生成了一个节点id:QmceWUYdX5xjE5zVA3bW1rt4Kq326bm83hRxAkPRe3QWR8,每个人的电脑执行结果会不一样,这串字符串就代表了你运行的ipfs节点。

查看安装情况,然后执行:

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

将会看到如下的画面:

如果想要详细了解ipfs的命令,可以执行下面命令查看

ipfs cat /ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/quick-start

或者 访问这个页面: https://ipfs.io/docs/commands/

4 节点上线

 

执行命令:

ipfs daemon

得到如下输出:

恭喜你,你的IPFS节点已经上线,查看你的节点都与那些节点建立了链接

打开一个新的命令行窗口,执行命令:

ipfs swarm peers

可以看到类似下面的输出,恭喜你,你可以看到截止到目前你的节点连接到到其他ipfs节点。

5 上传和下载

 

注意:切不可上传隐私文件,你不想你的xx照终生伴随这个IFPS网络吧?小编正在酝酿写一篇关于IFPS下的个人隐私保护的文章

IPFS core软件提供了两种方式:命令行的方式和web方式

命令行:下载

执行

ipfs cat /ipfs/your_hash > init.jpg

ipfs cat /ipfs/your_hash

例如:

ipfs cat /ipfs/QmdDTor6dWzknFJPJuhJgrUYqd56WkFXYAxyxpEY7kUrEb > init.jpg

这个hash值是小编12.8号在文章 《什么是IPFS?(三)

里面上传的那张图片,有兴趣的可以下载来看看。

命令行:上传

执行:

ipfs add init.jpg

tt-3:go-ipfs tt$ ipfs add init.jpg

added QmdDTor6dWzknFJPJuhJgrUYqd56WkFXYAxyxpEY7kUrEb init.jpg

这样就上传到IPFS网络一个文件了,ipfs add 会返回一个哈希值,这个哈希值就是文件在IPFS网络的地址

web方式:

打开浏览器,在浏览器里面输入 http://localhost:5001/webui , 就可以链接到你的节点,界面如下:

这是小编运行的节点的基本信息:

从下图可以看到小编的机子已经连接了世界上385个节点了。从左边的地球上看,中国运行的节点并不多,大部分节点运行在欧洲和美国

然后点击界面的左边 Files菜单,在右边里面可以看到 Select files,这就是web界面提供的上传文件功能,只需要选中文件,点击上传就好了,

添加完成后会在下面ALL LOCAL FILES里面多出来一个哈希值,那就是你刚上传的文件,如果没看到,刷新一下网页就可以了,这个时候不要立即关掉你的节点,给点时间让其它节点缓存你的文件。缓存一旦完成,此文件将伴随着IPFS网络永久存在。

这个时候你可以在浏览器里面输入:https://ipfs.io/ipfs/你的哈希值    就可以看到你的文件了,

比如:

https://ipfs.io/ipfs/QmTYrYEaebR7oxLxkkqGbs8Bmh5xqYBHKew8jN4XQgiiKS

这个小编刚才上传的文件

现在你应该已经学会了运行IPFS节点,并且学会了基本的文件上传和下载

如果你不想折腾,又想往IPFS上传一张纪念意义的文件(比如给女友的祝福),可以后台给小编留言,小编很乐意帮忙搞定:切记,IPFS网络的文件是永久存在的


作者飞向未来,致力于IPFS/Filecoin在中国的技术推广,他的微信公众号和社群,目前是中国最活跃最顶级的IPFS社群。作者飞向未来是圆方圆区块链的特邀嘉宾,所有转载都已经得到飞向未来本人授权。

更多飞向未来导师的公众号,可以在IPFS指南公众号中找到。

圆方圆链圈


如何在IPFS里面上传一张图片的更多相关文章

  1. iOS -- 上传多张图片 后台(PHP)代码和上传一张的一样

    // 上传多张图片 - (void)send { // 设置初始记录量为0 self.count = 0; self.upcount = 0; // 设置初始值为NO self.isUploadPic ...

  2. php用jquery-ajax上传多张图片限制图片大小

    php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $fileInputName * @param number $siz ...

  3. 微信JSSDK上传多张图片

    之前是使用for循环实现的,但是安卓手机没有问题,苹果手机只能上传最后一张图片. 好在有高手在前面趟路,实用的循环调用.苹果是没有,安卓不清楚.以下内容转自:http://leo108.com/pid ...

  4. 整理几个js上传多张图片的效果

    一.普通的上传图片,张数不限制 <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"&g ...

  5. Ajax+PHP实现异步上传多张图片

    Ajax+PHP实现异步上传多张图片 HTML代码 <!-- date: 2018-04-27 13:46:55 author: 王召波 descride: 多张图片上传 --> < ...

  6. 1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码

    1上传多张图片, 要对 $_FILES进行 重新处理. //添加 public function addCourseAlbumAction() { $CourseAlbumModel = new Co ...

  7. Okhttp3上传多张图片同时传递参数

    之前上传图片都是直接将图片转化为io流传给服务器,没有用框架传图片. 最近做项目,打算换个方法上传图片. Android发展到现在,Okhttp显得越来越重要,所以,这次我选择用Okhttp上传图片. ...

  8. POST请求上传多张图片并携带参数

    POST请求上传多张图片并携带参数 在iOS中,用POST请求携带参数上传图片是非常恶心的事情,HTTPBody部分完全需要我们自己来配置,这个HTTPBody分为3个部分,头部分可以携带参数,中间部 ...

  9. thinkphp3.2+cropper上传多张图片剪切图片

    实现效果截图 点加号可以继续上传第二张图片 代码部<--引入cropper相关文件--> <link rel="stylesheet" href="/h ...

随机推荐

  1. kubernetes 命令使用

    学会命令的查找和使用,而不是死记命令,记命令不如提高英文水平 1.kubernetes环境搭建完成后,kubernetes环境搭建参考http://www.cnblogs.com/sosogengdo ...

  2. mac的一些小技巧

    切换到超级管理员: sudo -s: 让你很快的全屏之间进行切换!很方便!很实用! command+tab 今天的感觉到公司的每一个人员,对于mac的系统的使用都是非常的熟悉的,我还什么都不会. 我得 ...

  3. Storm+HBase实时实践

    1.HBase Increment计数器 hbase counter的原理: read+count+write,正好完成,就是讲key的value读出,若存在,则完成累加,再写入,若不存在,则按&qu ...

  4. windows与虚拟机linux能ping通设置

    作为以后参考所用. 首先,介绍如何在VMWare中设置linux的网络.一般网络选项有Bridged,NAT,host-only几种,本次以host-only作详细说明,如下图: 在选择host-on ...

  5. 关于VS2013调试IIS应用源代码时无法进入断点的问题总结

    调试无法进入断点 前言:今天再次遇到之前调试无法进入断点的问题,本来想不写呢觉得没什么只是又犯了同样的错误,但是我发现这个问题我分析起来还是挺费劲的,我仔细想了想原因, 是因为自己对之前的错误没有进行 ...

  6. mysql常用基础操作语法(十)~~子查询【命令行模式】

    mysql中虽然有连接查询实现多表连接查询,但是连接查询的性能很差,因此便出现了子查询. 1.理论上,子查询可以出现在查询语句的任何位置,但实际应用中多出现在from后和where后.出现在from后 ...

  7. hi3531结构: VB_CONF_S

    定义视频缓存池属性结构体. typedef struct hiVB_CONF_S {        HI_U32 u32MaxPoolCnt; /* max count of pools, (0,VB ...

  8. dojo表格的一些属性

    dojo表格的属性总结归纳 1.表格无数据提示 data-dojo-props="noDataMessage:'无数据...'" 2.表格的高度自动适应 autoHeight=&q ...

  9. FusionCharts饼图中label值太长怎么解决

    FusionCharts饼图中label值太长怎么解决 1.使用hoverText属性 <?xml version="1.0" encoding="UTF-8&qu ...

  10. 碎片︱R语言与深度学习

    笔者:受alphago影响,想看看深度学习,但是其在R语言中的应用包可谓少之又少,更多的是在matlab和python中或者是调用.整理一下目前我看到的R语言的材料: ---------------- ...