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

Redmine API上传文件至项目文件区失败求助

问题:如何通过Redmine API将上传的文件添加到项目文件区

我需要把文件上传到Redmine项目的「文件」板块,已经完成了文件上传获取令牌的步骤:

使用以下curl命令上传文件获取令牌:

curl -ik -d "@dummy.txt" -H "Content-Type:application/octet-stream" -X POST https://myredmine.local/uploads.json?filename=dummy.txt&key=mysecretapikey

请求返回的令牌信息示例:

{"upload":{"id":174152,"token":"177152.17ace63347256470b75443c5aed7607f21fe3b90cc269d642404edb55dd00732"}}

但不知道怎么把已上传的文件添加到项目的文件区,虽然知道要向https://myredmine.local/projects/myproj/files.json(myproj是项目标识符)发送POST请求,但多次尝试都失败了,比如用了这个命令:

curl -ik -X POST --header "Content-Type: application/json" --data '{"file": {"filename":"dummy.txt", "description":"Test upload via API","content_type": "", "token":"177152.177152.17ace63347256470b75443c5aed7607f21fe3b90cc269d642404edb55dd00732"}}' https://myredmine.local/projects/myproj/files.json?key=mysecretapikey

解决方法

你的请求失败主要有两个问题:

  1. Token值重复:你在请求里写的token是177152.177152.xxx,但实际返回的token是177152.xxx,多了一段重复前缀,这会导致Redmine无法识别上传的文件。
  2. Content-Type为空:建议填写文件对应的MIME类型,比如文本文件填text/plain,如果不确定可以留空,但需确保其他参数正确。

正确的curl命令如下:

curl -ik -X POST \
  --header "Content-Type: application/json" \
  --data '{
    "file": {
      "filename": "dummy.txt",
      "description": "Test upload via API",
      "content_type": "text/plain",
      "token": "177152.17ace63347256470b75443c5aed7607f21fe3b90cc269d642404edb55dd00732"
    }
  }' \
  https://myredmine.local/projects/myproj/files.json?key=mysecretapikey

额外注意事项:

  • 确保你的API密钥mysecretapikey拥有该项目的文件创建权限
  • 上传文件的令牌有效期较短,需在获取后尽快使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:43:16