【发布时间】:2019-05-20 18:13:15
【问题描述】:
我正在开发一个应用程序,我在其中使用 IPFS 来存储和获取文件。
我正在使用以下适用于 Android 的 API,
根据文档,我可以使用以下代码从 IPFS 获取数据,
ipfs.get.cat("hash code of IPFS file")
但这里它以字符串格式返回所有内容,即使上传的文件是图像。
我如何知道文件的内容类型并下载相同的格式?
【问题讨论】:
我正在开发一个应用程序,我在其中使用 IPFS 来存储和获取文件。
我正在使用以下适用于 Android 的 API,
根据文档,我可以使用以下代码从 IPFS 获取数据,
ipfs.get.cat("hash code of IPFS file")
但这里它以字符串格式返回所有内容,即使上传的文件是图像。
我如何知道文件的内容类型并下载相同的格式?
【问题讨论】:
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);
}
}
【讨论】: