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

如何将GitHub私有仓库存储的图片嵌入Azure工作簿Markdown文件

问题说明
  • 私有GitHub仓库用于存储Azure工作簿项目配套的图片、截图资源
  • Azure工作簿基于Markdown语法构建,需要嵌入仓库内存储的私有图片
  • 已测试的两种无令牌嵌入写法如下,均依赖GitHub自动生成的临时访问令牌,令牌过期后链接直接失效:
![Private picture](https://raw.githubusercontent.com/UserName/Images/Screenshot%202020-09-15%20at%2010.32.38.png)

![Private picture](https://github.com/UserName/Images/Screenshot%202020-09-15%20at%2010.32.38.png?raw=true)
  • 手动生成全权限PAT拼接在资源链接query参数后访问返回404,测试写法如下:
![Private picture](https://raw.githubusercontent.com/UserName/Images/Screenshot%202020-09-15%20at%2010.32.38.png?token=xxxxxxxx)
解决方案

正确的PAT生成与使用方法

  • PAT生成步骤:
    • 进入GitHub个人设置页,依次打开「Developer settings」-「Personal access tokens」-「Tokens (classic)」
    • 新建经典类型令牌,不要选择细粒度令牌,细粒度令牌鉴权逻辑不兼容Markdown场景下的直接资源访问
    • 权限仅勾选repo权限组即可,无需配置其他多余权限
    • 妥善保存生成的令牌值,该值仅在生成时展示一次
  • 正确的嵌入写法:不要把PAT拼接在query参数中,这是之前返回404的核心原因。Markdown场景无法自定义请求头,使用GitHub原生支持的URL内嵌鉴权格式即可:
![私有图片](https://<替换为你生成的PAT值>@raw.githubusercontent.com/UserName/Images/<替换为对应分支名,通常是main>/Screenshot%202020-09-15%20at%2010.32.38.png)

该写法生成的链接,只要PAT未主动撤销、未到设置的过期时间,就可以直接在浏览器、Azure工作簿中正常加载,不会出现临时令牌过期失效的问题。

更适合生产场景的替代方案

如果不想把具备仓库访问权限的PAT直接写在Markdown内容中(存在令牌泄露风险),可以选择以下两种更稳妥的方案:

  • 方案1:将图片资源上传到Azure Blob存储的公共读容器,直接使用Blob资源链接嵌入。同属Azure生态,访问速度更快,也可以通过SAS令牌灵活控制访问有效期、随时撤销权限
  • 方案2:将仓库内的图片目录通过GitHub Pages发布为静态资源路径,私有仓库的GitHub Pages可对接组织权限体系做访问控制,不需要在链接中暴露访问令牌
之前写法失效原因
  • 不带鉴权信息的raw链接、带?raw=true参数的仓库页面链接,附带的临时令牌是GitHub为匿名访问生成的短期凭证,有效期通常仅数小时,过期后会自动跳转到登录页,无法长期嵌入使用
  • GitHub raw资源接口不识别query参数中的token字段,把PAT拼在?token=后属于无效传参,因此会直接返回404

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:09:16