GitHub Action中用CURL上传仓库文件报错:Failed to open/read local data
问题原因与解决方案
核心错误
你的GitHub Action流程里没有检出仓库代码,默认情况下,GitHub Action运行的环境是一个全新的Ubuntu系统,并不包含你的仓库文件,所以curl找不到指定的本地文件,才会报Failed to open/read local data from file/application错误。
修正后的完整配置
name: "Publish API Reference to DeveloperHub" on: [push] jobs: deployment: runs-on: ubuntu-latest steps: # 新增:将仓库代码拉取到当前工作环境 - name: Checkout repository code uses: actions/checkout@v4 - name: Create/Update References run: | echo Starting Upload of Swagger # 可选调试步骤:确认文件是否存在 ls -la Payments/Documentation/ curl --request POST \ --verbose \ --header "X-Api-Key: ${{secrets.DH_API_KEY}}" \ --form "file=@Payments/Documentation/PaymentSOAP_Swagger.YAML" \ --url "https://api.developerhub.io/api/v1/version/8973/reference" echo Done
关键说明
- checkout步骤是必需的:
actions/checkout@v4会把你的仓库代码同步到Action运行的工作目录,后续才能访问到仓库内的文件。 - 注意路径大小写:Ubuntu环境对文件路径大小写敏感,要确保
Payments/Documentation/PaymentSOAP_Swagger.YAML和仓库中实际的文件路径完全一致,包括字母大小写。 - 调试技巧:添加
ls -la Payments/Documentation/命令,可以在Action日志里确认文件是否存在、路径是否正确,快速定位问题。
内容的提问来源于stack exchange,提问作者CB_at_Sw
相关产品推荐
相关产品推荐

