我使用infura API和ipfs-http-client在ipfs上上传了jpg图像。该文件来自具有type = file的输入。事件列表器处于onchange状态。
// imports
const IpfsHttpClient = require("ipfs-http-client");
const ipfsC = IpfsHttpClient({
host: "ipfs.infura.io",
port: "5001",
protocol: "https",
});
<input type="file" onChange={(e) => { upload(e); }} />
const upload = async (e) => {
const file = e.target.files[0];
const added = await ipfsC.add(file, {
progress: (prog) => console.log(`received: ${prog}`),
});
console.log(added)
};
我得到的哈希值是QmQnSWbsck26xrFRiowdV2JhP7cbKRc9KbjWinRhmJgiMa。现在,我正在尝试检索图像并将其显示在Web应用程序上。我应该如何进一步。
function toBase32(value) {
var cid = new CID(value)
return cid.toV1().toBaseEncodedString('base32')
}
这会将给定的v0哈希转换为v1哈希。然后可以如Dietrich Ayala在上述答案中提到的那样检索图像。