之前有好几人问过小编,想在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. this指针随笔

    在类中,非常量成员函数中,this指针为指向非常量的常量指针Class* this const 在常量成员函数中,this指针为const class* this const,为指向常量的常量指针

  2. Linux定时及mysql远程

    (1)crontab crontab使用方法: (1)使用命令 crontab -e 然后直接编辑定时脚本. 这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个 ...

  3. MyEclipse中如何去掉JS/JSP语法错误提示

    一    优化一下MyEclipse 1 .关闭MyEclipse的自动validation      windows > perferences > myeclipse > val ...

  4. byte[] Base64 Stream 之间相互转换

    图片 base64转byte[] /// <summary> /// 保存base64图片,返回阿里云地址 /// </summary> /// <param name= ...

  5. 【前端】Vue和Vux开发WebApp日志四、增加命令行参数

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_4.html 项目github地址:https://github.com/shamoyuu/vue- ...

  6. mysql常用基础操作语法(五)--对数据的简单条件查询【命令行模式】

    1.单条件查询:select 字段名 from tablename where 条件: 2.简单多条件查询,使用&&或者between and等: 3.is null和is not n ...

  7. firebug中的console常用的方法

    firebug中的console常用的方法 1.console.log("Hello!"); --------------------显示基本信息 2.console.info(& ...

  8. 详解Linux Initrd

    在Linux操作系统中,有一项特殊的功能--初始化内存盘INITRD(INITial Ram Disk)技术,而且内核支持压缩的文件系统映像.有了这两项功能,我们可以让Linux系统从小的初始化内存盘 ...

  9. [INS-32052] Oracle基目录和Oracle主目录位置相同

    1.错误描述 [INS-32052] Oracle基目录和Oracle主目录位置相同 2.错误原因    Oracle基目录和Oracle主目录位置相同 3.解决办法    Oracle基目录和Ora ...

  10. I2C总线通讯协议

    I2C总线通讯协议 1. I2C总线简介 I2C是Inter-Integrated Circuit的简称,读作:I-squared-C.由飞利浦公司于1980年代提出,为了让主板.嵌入式系统或手机用以 ...