IPFS从网络读取数据

时间:2018-12-20 08:36:48

标签: android ipfs

我正在开发一个应用程序,其中使用IPFS来存储和获取文件。

我正在使用以下适用于Android的API,

  

https://github.com/ligi/ipfs-api-kotlin

根据文档,我可以使用以下代码从IPFS获取数据,

ipfs.get.cat("hash code of IPFS file")

但是在这里,即使上传的文件是Image,它也会以字符串格式返回所有内容。

如何知道文件的内容类型并下载相同格式?

1 个答案:

答案 0 :(得分:1)

IPFS不允许在内容本身旁边存储元数据,例如内容类型。

您可以使用对我有用的Java做的事情:

private static String guessContentType(InputStream content) {

    try {
        String guessedContentType = URLConnection.guessContentTypeFromStream(content);

        if (!StringUtils.isEmpty(guessedContentType)) {
            return guessedContentType;
        } else {
            return MediaType.APPLICATION_OCTET_STREAM_VALUE;
        }

    } catch (IOException e) {
        throw new RuntimeException("Unable to guess content type", e);
    }
}