当前位置: 首页 > news >正文

java调用IPFS去中心化体系

Maven pom.xml引入

<repositories>
 <repository>
 <id>jitpack.io</id>
 <url>https://jitpack.io</url>
 </repository>
 </repositories>
 <dependencies>
 <dependency>
 <groupId>com.github.ipfs</groupId>
 <artifactId>java-ipfs-api</artifactId>
 <version>$LATEST_VERSION</version>
 </dependency>
 </dependencies>

创建节点

IPFS ipfs = new IPFS(new MultiAddress("/ip4/127.0.0.1/tcp/8888"));

初始化IPFS 加载

ipfs.refs.local();

要添加文件使用
NamedStreamable.FileWrapper file = new NamedStreamable.FileWrapper(new File("D:/longpizi.png"));
添加文件到IPFS返回HASH值
Multihash addResult = ipfs.add(file).hash;
输出HASH值
System.out.println(addResult);

查询IPFS里面的文件(通过HASH值查询)

Multihash filePointer =Multihash.fromBase58("HASH值");
byte[] data = ipfs.cat(filePointer);通过HASH值查询文件转为byte[]

通过文件流输出
InputStream inputStream=new ByteArrayInputStream(data);
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[400];
int length = 0;
while ((length = inputStream.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
os.flush();
os.close();
完成的java调用IPFS

 














转载于:https://www.cnblogs.com/longpizi/p/9160923.html

相关文章:

  • Scrapy 1.5.0之基础入门
  • OSChina 周一乱弹 —— 你老婆和闺蜜总用奇怪的眼神看着你
  • Linux 进程后台运行的几种方式 screen
  • ES6系列--4. 对象的扩展
  • 技术沙龙|风口之下,经验丰富的“传统开发者”要不要转型区块链开发?(西安)...
  • 中兴智能视觉大数据报道:至2020年人脸识别市场规模增速为166.6%
  • nginx lua模块安装 让nginx支持lua
  • 【知识小结】Git 个人学习笔记及心得
  • python的len函数
  • 基础网络
  • 巧妙的CSS
  • 第五周 网络
  • ASP.NET CORE MVC 2.0 发布到IIS 配置问题
  • 我的JS日记-隐式转换相关知识
  • 流计算独享模式正式邀测
  • 【前端学习】-粗谈选择器
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • chrome扩展demo1-小时钟
  • css属性的继承、初识值、计算值、当前值、应用值
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mysql数据库的条件查询语句
  • Vue.js源码(2):初探List Rendering
  • 浮动相关
  • 给github项目添加CI badge
  • 聊一聊前端的监控
  • 我的面试准备过程--容器(更新中)
  • - 转 Ext2.0 form使用实例
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 通过调用文摘列表API获取文摘
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (译)2019年前端性能优化清单 — 下篇
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .form文件_一篇文章学会文件上传
  • .NET 8.0 发布到 IIS
  • .NET Core中Emit的使用
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net6+aspose.words导出word并转pdf
  • .net项目IIS、VS 附加进程调试
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ IO.File ] FileSystemWatcher
  • [ 转载 ] SharePoint 资料
  • [04]Web前端进阶—JS伪数组
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [BZOJ3223]文艺平衡树
  • [HDU3710]Battle over Cities
  • [Json.net]快速入门
  • [json]定义、读写
  • [Linux]创建新用户并授予root权限
  • [linux]--关于进程概念(上)
  • [OGRE]看备注学编程(02):打地鼠01-布置场地九只地鼠
  • [Oh My C++ Diary]return 1和return 0的区别
  • [OpenWrt]RAX3000一根线实现上网和看IPTV