如何使用API从Azure DevOps Services HTML字段下载图像

尼科

我想从我们的Azure DevOps Services实例下载工作项详细信息,然后将其推送到我们的本地TFS服务器中。

我可以使用C#中WorkItemTrackingHttpClient连接到DevOps服务器我可以遍历找到的工作项并可以查看字段,并使用GetAttachmentContentAsync下载附件到目前为止一切都很好。

我需要完成的最后一个细节是还复制/下载HTML Description字段中的嵌入式图像。我可以从HTML字段中提取HTML代码,并在其中看到一个或多个img src行。

<img src=\"https://dev.azure.com/tenant/projectguid/_apis/wit/attachments/d928c8ee-f493-4d30-99a5-f62b7f36a2f7?fileName=grafik.png"\>

所有这些都具有fileName grafik.png,但具有不同的fileGuid。

我试图使用GetAttachmentContentAsync在此GUID上进行下载,但这没有用。我尝试使用普通的Stream下载文件,但是没有用,我认为这是由于身份验证。图像文件也不会显示为普通附件。

所以问题是,如何从我的C#客户端从Azure DevOps下载此映像,该映像已通过API使用PAT进行了身份验证。我可以使用API​​调用来下载此文件吗?我无法找到它,或者我可以以某种方式通过该PAT对WebClient进行身份验证,以便它可以下载它?

尼科

经过进一步的故障排除之后,GetAttachmentContentAsync现在可以下载映像。

对于任何人,可能正在寻找类似的解决方案。这就是我所做的

  • 使用标准说明连接到TFS- https: //docs.microsoft.com/zh-cn/azure/devops/integrate/quickstarts/work-item-quickstart?view=azure- devops
  • 从HTML代码中提取img src URL
  • 从URL中提取GUID并下载此图像

用于下载的代码

公共字符串DownloadAttachment(字符串url,字符串fileName,int workItemId)

    {
        string[] urlSplit = url.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
        int index = urlSplit.Length - 1;
        Guid attGuid = new Guid(urlSplit[(index)]);

        if (fileName == string.Empty)
        {
            fileName = urlSplit[(index)] + ".png";
        }
        return DownloadAttachment(attGuid, fileName, workItemId);
    }

    public string DownloadAttachment(Guid attGuid, string fileName, int workItemId)
    {
        var credentials = new VssBasicCredential(string.Empty, this.personalAccessToken);

        // create instance of work item tracking http client
        using (var httpClient = new WorkItemTrackingHttpClient(this.uri, credentials))
        {
            Stream attStream = httpClient.GetAttachmentContentAsync(attGuid).Result;

            string folderPath = @"C:\Temp\WorkItemAttachments\" + workItemId;
            string fileFullPath = folderPath + "\\" + fileName;
            Directory.CreateDirectory(folderPath);

            using (FileStream writeStream = new FileStream(fileFullPath, FileMode.Create, FileAccess.ReadWrite))
            {
                attStream.CopyTo(writeStream);
            }
        }

        return fileName;

    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PHP的HTML Checkbox下载图像链接

来自分类Dev

我可以在IBM Bluemix DevOps Services中使用不同版本的Node,构建步骤“ npm”构建器类型吗?

来自分类Dev

如何使用Python API在Azure DevOps中添加分支策略

来自分类Dev

如何使用Azure DevOps REST Api获取非秘密的构建参数?

来自分类Dev

无法从Azure DevOps Services REST API获取Azure DevOps代码覆盖率信息

来自分类Dev

如何使用Bearer令牌从Azure DevOps调用REST API

来自分类Dev

如何阻止html网络下载相同的图像?

来自分类Dev

通过用于Azure DevOps Services的REST API创建bug时如何找到发行说明字段的API端点

来自分类Dev

如何在Azure Devops上添加新字段并继承旧(前身)字段的值?

来自分类Dev

将Azure DevOps Services与Azure DevOps本地存储库和构建/发行版一起使用。那可行吗?

来自分类Dev

修改DevOps中的Azure Analysis Services数据库角色

来自分类Dev

Azure DevOps Services中有多个维基和安全性访问

来自分类Dev

错误:部署失败:从Azure DevOps Services部署到App Service时,ERROR_DESTINATION_NOT_REACHABLE

来自分类Dev

在DevOps中删除Azure Analysis Services防火墙规则

来自分类Dev

Azure DevOps生成失败-MSB4226-Analysis Services

来自分类Dev

Azure DevOps REST API

来自分类Dev

将图像添加到Azure Devops仪表板

来自分类Dev

Azure devops回购以使用RestApi从回购中下载特定文件

来自分类Dev

如何使用API和C#将文件从天蓝色DevOps服务器下载到指定路径

来自分类Dev

如何在Azure DevOps工件中下载工件

来自分类Dev

如何在Azure Devops API中获取userId字段

来自分类Dev

Azure DevOps使用REST API调用GetItem

来自分类Dev

Azure DevOps工作项规则的条件字段值

来自分类Dev

从HTML中的下载按钮下载API生成的图像

来自分类Dev

如何将单个团队项目从TFS 2012迁移到Azure DevOps Services?

来自分类Dev

通过命令行从 Azure Devops 下载应用程序

来自分类Dev

带有自定义字段的 Azure DevOps 图表

来自分类Dev

Azure DevOps:无法将“:”符号设置到 BuildNumber 字段中

来自分类Dev

构建列表中的 Azure DevOps 字段值

Related 相关文章

  1. 1

    使用PHP的HTML Checkbox下载图像链接

  2. 2

    我可以在IBM Bluemix DevOps Services中使用不同版本的Node,构建步骤“ npm”构建器类型吗?

  3. 3

    如何使用Python API在Azure DevOps中添加分支策略

  4. 4

    如何使用Azure DevOps REST Api获取非秘密的构建参数?

  5. 5

    无法从Azure DevOps Services REST API获取Azure DevOps代码覆盖率信息

  6. 6

    如何使用Bearer令牌从Azure DevOps调用REST API

  7. 7

    如何阻止html网络下载相同的图像?

  8. 8

    通过用于Azure DevOps Services的REST API创建bug时如何找到发行说明字段的API端点

  9. 9

    如何在Azure Devops上添加新字段并继承旧(前身)字段的值?

  10. 10

    将Azure DevOps Services与Azure DevOps本地存储库和构建/发行版一起使用。那可行吗?

  11. 11

    修改DevOps中的Azure Analysis Services数据库角色

  12. 12

    Azure DevOps Services中有多个维基和安全性访问

  13. 13

    错误:部署失败:从Azure DevOps Services部署到App Service时,ERROR_DESTINATION_NOT_REACHABLE

  14. 14

    在DevOps中删除Azure Analysis Services防火墙规则

  15. 15

    Azure DevOps生成失败-MSB4226-Analysis Services

  16. 16

    Azure DevOps REST API

  17. 17

    将图像添加到Azure Devops仪表板

  18. 18

    Azure devops回购以使用RestApi从回购中下载特定文件

  19. 19

    如何使用API和C#将文件从天蓝色DevOps服务器下载到指定路径

  20. 20

    如何在Azure DevOps工件中下载工件

  21. 21

    如何在Azure Devops API中获取userId字段

  22. 22

    Azure DevOps使用REST API调用GetItem

  23. 23

    Azure DevOps工作项规则的条件字段值

  24. 24

    从HTML中的下载按钮下载API生成的图像

  25. 25

    如何将单个团队项目从TFS 2012迁移到Azure DevOps Services?

  26. 26

    通过命令行从 Azure Devops 下载应用程序

  27. 27

    带有自定义字段的 Azure DevOps 图表

  28. 28

    Azure DevOps:无法将“:”符号设置到 BuildNumber 字段中

  29. 29

    构建列表中的 Azure DevOps 字段值

热门标签

归档