使用web3.storage上传文件时遇TypeError: source is not iterable问题求助
排查web3.storage上传失败问题的实操步骤
1. 对齐依赖版本
旧环境代码正常运行,核心差异大概率在依赖版本。
- 在旧电脑项目根目录执行:
npm list或yarn list,导出完整依赖版本列表 - 把旧电脑的
package-lock.json或yarn.lock复制到新电脑项目中,执行npm install或yarn install,强制同步依赖版本
2. 验证web3.storage配置有效性
- 检查新电脑项目的环境变量文件(如
.env),确认WEB3_STORAGE_TOKEN和旧电脑完全一致 - 在新电脑终端运行以下测试代码(替换你的密钥),验证API密钥是否可用:
import { Web3Storage } from 'web3.storage' const token = '你的web3.storage API密钥' const storage = new Web3Storage({ token }) ;(async () => { try { const info = await storage.getInfo() console.log('API密钥验证通过:', info) } catch (err) { console.error('API密钥无效或网络异常:', err) } })()
3. 排查网络与权限问题
- 确认新电脑可正常访问web3.storage服务,直接访问官网测试连通性
- 暂时关闭防火墙、代理类软件,重试上传操作
- 检查项目目录及待上传文件的读写权限,确保代码能正常读取文件
4. 捕获完整错误信息
截图提示不够明确,给上传代码添加详细错误捕获:
async function uploadToWeb3Storage(file) { const storage = new Web3Storage({ token: process.env.WEB3_STORAGE_TOKEN }) try { const cid = await storage.put([file]) console.log('上传成功,CID:', cid) } catch (err) { console.error('上传失败完整信息:', err.message, '\n', err.stack) } }
运行后查看终端或浏览器控制台的完整报错,精准定位问题
5. 测试React版本兼容性
新版本React可能存在API变更,对比旧电脑的React版本,尝试逐步降级React版本,排查是否存在版本兼容问题
内容的提问来源于stack exchange,提问作者Abdul Haq
相关产品推荐
相关产品推荐

