You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Llamaindex TS SimpleDirectoryReader本地正常但AWS EC2无法读取文件求助

问题排查方案

1. 验证EC2上的文件是否完整

二进制文件(PDF、DOCX)在Git克隆或传输过程中,容易因文本格式转换、传输中断导致损坏:

  • 本地和EC2分别计算文件哈希值对比:
    # 本地执行
    md5sum ./data/example.pdf
    # EC2服务器执行
    md5sum ./data/example.pdf
    
  • 若哈希值不一致,说明文件已损坏:
    • 改用git lfs管理二进制文件后重新克隆代码;
    • 或通过scp -C ./data/* ec2-user@<EC2_IP>:/path/to/app/data/直接上传本地文件到EC2。

2. 替换相对路径为绝对路径

代码中./data是相对当前工作目录的路径,若EC2上启动服务时的工作目录不是代码根目录,会导致读取错误:
修改代码为绝对路径,确保路径指向准确:

const path = require('path');
const directoryPath = path.resolve(__dirname, './data');
const directoryReader = new SimpleDirectoryReader();
const documents = await directoryReader.loadData({ directoryPath });

3. 确保本地与EC2的依赖版本一致

不同版本的LlamaIndex Node.js SDK或其底层依赖(如PDF解析库)可能存在兼容性问题:

  • 本地查看版本:npm list llamaindex
  • EC2上执行相同命令对比,若版本不一致:
    rm -rf node_modules package-lock.json
    npm ci # 严格按照package-lock.json安装依赖,保证版本一致
    

4. 用系统工具验证文件可读性

排除文件本身的损坏问题:

  • PDF验证:先安装工具sudo yum install poppler-utils,再执行pdftotext ./data/example.pdf -,若能正常输出文本则文件无损坏;
  • DOCX验证:执行unzip -l ./data/example.docx,若能列出压缩包内的文件结构则文件无损坏。
  • 若系统工具能正常读取但LlamaIndex无法读取,需检查LlamaIndex版本适配性,或向官方提交问题反馈。

内容的提问来源于stack exchange,提问作者Joji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:17:11