使用NFT.storage的storeBlob存储加密字符串时遇TypeError错误求助
解决NFT.storage storeBlob报错:TypeError: source is not async iterable
问题根源
storeBlob方法只接受Blob、File对象,或者AsyncIterable
修复方案
把加密字符串转换成Blob对象后再传入storeBlob,修改后的代码如下:
const client = new NFTStorage({ token: NFT_STORAGE_KEY }) async function storeAsset(metadata) { // 将加密字符串转为Blob对象,MIME类型可根据实际数据调整 const blob = new Blob([metadata], { type: 'text/plain' }) const cid = await client.storeBlob(blob); console.log("Metadata stored on Filecoin and IPFS with cid:", cid) }
特殊场景补充
如果你的加密字符串是二进制数据的base64编码,需要先解码成字节数组再转Blob:
// 假设metadata是base64格式的加密二进制数据 const decodedBytes = Uint8Array.from(atob(metadata), char => char.charCodeAt(0)) const blob = new Blob([decodedBytes], { type: 'application/octet-stream' })
内容的提问来源于stack exchange,提问作者Devyani Kalamkar
相关产品推荐
相关产品推荐

