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

如何通过编程下载Redmine中Documents类型链接的文件?

解决Redmine Documents类型文件的下载问题

Redmine的documents/{id}链接是文档的详情展示页,并非直接的文件下载地址,这和Attachments直接指向文件的逻辑不同。要下载Documents关联的文件,需要先获取文档对象,再提取其关联的附件资源,具体实现步骤如下:

实现步骤

  1. 获取目标Document对象,它会包含关联的附件列表
  2. 遍历附件列表(或指定单个附件),使用已有的下载逻辑获取文件字节
  3. 将字节写入本地文件

完整代码示例

var optionsBuilder = new RedmineManagerOptionsBuilder();
optionsBuilder.WithHost(RedmineHost);
optionsBuilder.WithApiKeyAuthentication(apiKey); 
var rm = new RedmineManager(optionsBuilder);

// 1. 获取Document对象,替换为你的文档ID
var document = await rm.GetAsync<Document>(785);

// 2. 遍历文档关联的所有附件并下载(如果只需单个附件,可通过索引或ID筛选)
foreach (var docAttachment in document.Attachments)
{
    var fileBytes = await rm.DownloadFileAsync(docAttachment.ContentUrl);
    // 拼接保存路径,这里用附件的文件名作为示例
    var savePath = Path.Combine(yourSaveDirectory, docAttachment.FileName);
    System.IO.File.WriteAllBytes(savePath, fileBytes);
}

关键说明

  • Redmine的Document实体本身不直接存储文件,而是通过Attachments属性关联一个或多个附件文件
  • 如果文档仅关联单个附件,可直接取document.Attachments.FirstOrDefault()来获取,无需遍历
  • 确保你的API Key拥有该文档及附件的访问权限,否则会返回权限错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 17:47:36