作者简介:董天一 ,IPFS/Filecoin中国区技术布道人 ,《IPFS指南》作者

毕业于北京大学软件与微电子学院
曾担任甲骨文亚洲研发中心(中国)数据库开发工程师
资深区块链技术开发者,现致力于IPFS/Filecoin在中国的技术推广

之前有好几人问过小编,想在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:世界正在悄然发生变化

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。
许晓笛老师的CSDN学院视频专栏:https://edu.csdn.net/lecturer/2008
郭金宏老师的csdn学院视频专栏:https://edu.csdn.net/lecturer/2214

圆方圆学院汇集大批区块链名师,打造精品的区块链技术课程。 在各大平台都长期有优质免费公开课,欢迎报名收看。
公开课地址:https://ke.qq.com/course/345101?flowToken=1007330

【董天一】如何在IPFS里面上传一张图片相关推荐

  1. 如何在IPFS里面上传一张图片

    之前有好几人问过小编,想在IPFS里面上传一张图片.如何做? 今天小编就讲一下如何在IPFS里面上传.下载文件? 1 下载IPFS软件 下载地址:https://dist.ipfs.io/#go-ip ...

  2. 高手教你PHP上传多张图片

    高手教你PHP上传多张图片 对于我们来说上传一张图片是非常简单的事情,这里教大家一个关于PHP上传多张图片的代码分析,希望对大家有帮助. 学习PHP时,你可能会遇到PHP上传多张图片问题,这里将介绍P ...

  3. ajax请求多张图片数据库,ajax上传多文件,一次上传多张图片

    ajax上传多文件,一次上传多张图片 作者:PHPYuan 时间:2018-11-04 03:41:44 使用ajax上传文件,指望这个对象:let fd = new FormData(); html ...

  4. php上传多张图片为什么只显示一张,javascript,_js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次???,javascript - phpStudy...

    js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次??? js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次??? self.$els.upload ...

  5. okhttp上传图片和其他参数_Android中Okhttp3实现上传多张图片同时传递参数_放手_前端开发者...

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

  6. [前台]---js重复上传一张图片两次,第二次失败的解决办法和思路

    js重复上传一张图片两次,第二次会失败,解决办法就是修改input的value值. 先上代码: <input style="display:none" type=" ...

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

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

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

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

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

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

最新文章

  1. from __future__ import absolute_import, division, print_function
  2. Java中的Memento设计模式-示例教程
  3. point-position2修改版
  4. 程序员谨防加班猝死之十大建议
  5. Cocoapods的Podfile常见语法总结
  6. js fmt 时间失败,解决方案
  7. jsonp 返回以前必须要再转一次json
  8. Java基础语法总结(全)
  9. 两种方式获取revit族文件预览缩略图
  10. 孔浩javacript基础笔记一
  11. Python3爬虫教程-1.使用爬虫抓取网页上的一张图片
  12. 估计值与平均值的离差平方和_各变量值与其算术平均数的离差平方之和为()
  13. linux下搜索丢失分区,找回丢失的Linux分区拯救我的硬盘
  14. vs各个版本的编译器号对应的vs版本号
  15. 简易记账开发笔记之Fragment(前传)
  16. 【转载】测试工程师怎么甩锅
  17. PHP单元测试框架 PHPUnit 提高
  18. 微盟战略进阶赢得逆势增长,WOS奠定未来生态基础
  19. Raccoon——(Misc)Black Night writeup
  20. [商业][思想]《免费 -- 商业的未来 Free The Future of a Radical Price》 -- 克里斯·安德森(美)...

热门文章

  1. matplotlib如何设置grid密度,如何设置网格线密度
  2. Java多线程及线程池
  3. Vue项目中实现用户登录及token验证
  4. Vue登录注册,并保存登录状态
  5. 任务计划程序定时关机
  6. VulnHub-Tr0II
  7. SuperFetch
  8. js把vue转化html,将 vue.js 获取的 html 文本转化为纯文本
  9. 条形码--JsBarcode
  10. ifs文件服务器,配置IFS工作流和润乾报表时需要修改IFS服务器的几个地方.doc