用ipfs 对文件进行上传下载
1.上传下载原理:将文件转换为hash,下载的时候再把hash转换为文件。具体代码如下:
2.引入ipfs的mavn依赖
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>com.github.ipfs</groupId>
<artifactId>java-ipfs-api</artifactId>
<version>1.3.3</version>
</dependency>
<!-- ipfs依赖 -->
<dependency>
<groupId>com.github.ipfs</groupId>
<artifactId>java-ipfs-http-client</artifactId>
<version>v1.3.3</version>
</dependency>
<dependency>
<groupId>com.github.multiformats</groupId>
<artifactId>java-multibase</artifactId>
<version>v1.0.1</version>
</dependency>
<dependency>
<groupId>com.github.multiformats</groupId>
<artifactId>java-multihash</artifactId>
<version>v1.2.1</version>
</dependency>
<dependency>
<groupId>com.github.ipld</groupId>
<artifactId>java-cid</artifactId>
<version>v1.1.1</version>
</dependency>
3.application配置
ipfs.host.url=/ip4/127.0.0.1/tcp/5001
#/ip4/127.0.0.1/tcp/5001 /ip4/192.168.1.242/tcp/5010
4 业务代码
4.1 PinKeys 实体
@Data
public class PinKeys {
/**
* indirect 文本、数据
* recursive 文件夹、数据
*/
private String Type;
}
4.2 IPFSS类
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import io.ipfs.api.IPFS;
import io.ipfs.api.JSONParser;
import io.ipfs.multiaddr.MultiAddress;
import org.jeecg.modules.entity.PinKeys;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream