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

curl返回(26)错误:无法读取本地文件,请求排查原因

curl报错(26) Failed to open/read local data from file/application排查方案

执行以下curl POST上传命令时返回错误curl: (26) Failed to open/read local data from file/application,已通过du确认COVER、INSTRUMENTAL_FILE、EXIF_INFO对应的文件均存在且可正常访问,但报错依旧:

ALBUM_NAME="At The Soundless Dawn"
SONG_FILE_NAME="01. Alone And Unaware The Landscape Was Transformed"
ALBUM_FOLDER_NAME="/Users/canercetin/Git/audio-splitter/Red Sparowes/2005 - At The Soundless Dawn [Daymare Rec., PTCD-1020]"
COVER="$ALBUM_FOLDER_NAME/Front.jpg"
INSTRUMENTAL_FILE="$ALBUM_FOLDER_NAME/${SONG_FILE_NAME}.mp3"
EXIF_INFO="$ALBUM_FOLDER_NAME/${SONG_FILE_NAME}_info.json"
curl -v \
    -F "cover=@$COVER" \
    -F "name=$ALBUM_NAME" \
    -F "instrumental=@$INSTRUMENTAL_FILE" \
    -F "exifInfo=@$EXIF_INFO" \
    -X POST \
    "$UPLOAD_HTTP_SERVER/admin/albums/upload"

排查方向及解决方法

  • 文件名/路径特殊字符未转义
    路径和文件名包含空格、方括号([/])等特殊字符,bash解析时会将其当作通配符或语法符号,导致curl无法正确识别文件路径。
    解决:给curl命令中的文件路径变量添加双引号包裹,确保特殊字符被正确解析。例如修改为:

    curl -v \
        -F 'cover=@'"$COVER" \
        -F 'name='"$ALBUM_NAME" \
        -F 'instrumental=@'"$INSTRUMENTAL_FILE" \
        -F 'exifInfo=@'"$EXIF_INFO" \
        -X POST \
        "$UPLOAD_HTTP_SERVER/admin/albums/upload"
    
  • 环境变量或curl版本问题
    若UPLOAD_HTTP_SERVER变量未正确定义,会导致请求地址无效,可能间接触发文件读取错误提示;部分旧版本curl处理特殊字符路径存在bug。
    解决:

    1. 执行echo $UPLOAD_HTTP_SERVER确认变量值是否为有效地址;
    2. 更新curl到最新稳定版本后重新测试。
  • 文件/目录权限限制
    du仅需读权限即可访问文件,但curl上传时可能受系统安全策略(如SELinux/AppArmor)或目录执行权限限制。
    解决:

    1. 确保文件所在目录对当前用户有执行权限:chmod +x "$ALBUM_FOLDER_NAME";
    2. 临时关闭系统安全策略(如Linux下执行sudo setenforce 0)测试是否为权限拦截导致。
  • 变量扩展时的空格拆分
    未加引号的变量在bash中会被按空格拆分为多个参数,导致curl仅读取路径的第一部分,最终找不到完整文件。
    解决:所有包含空格的变量引用都用双引号包裹,避免参数被意外拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 20:04:56