通过 GitHub API 查询符号链接时,如果符号链接指向文件而不是目录,我会得到不同的结果。后者表现得更好,因为它会返回"type": "symlink"
作为其 JSON 的一部分,而前者返回"type": "file"
。例子文件符号链接 https://api.github.com/repos/aknuds1/littlebits-arduino/contents/muzhack/files/littleBitsMidiNotes.ino, 例子目录符号链接 https://api.github.com/repos/aknuds1/Littlebits-Arduino/contents/muzhack/files/adapter-board-files.
当符号链接将自己宣传为文件时,这是非常令人困惑的,因为 GET-ing 其下载 URL 只会为您提供符号链接的目标,而不是文件内容.
如何判断文件实际上是符号链接,而不是真实文件?
另外,为文件符号链接返回类型“file”的行为是一个彻头彻尾的错误吗?这看起来不太对劲。
不幸的是,答案是“你不”。无法区分文件请求和符号链接(API 处于当前状态)。从文档 https://developer.github.com/v3/repos/contents/#response-if-content-is-a-symlink:
如果请求的 :path 指向符号链接,并且符号链接的目标是存储库中的普通文件,则 API 将使用文件的内容进行响应 [...]
否则,API 将使用描述符号链接本身的对象进行响应:
我向 GitHub 支持提出了这个问题,他们确认没有办法做到这一点。他们提出向内部团队提出请求,但我想这不太可能被采纳。
一种解决方法(并不适合所有情况)是通过以下方式请求文件https://raw.githubusercontent.com/ https://raw.githubusercontent.com/如果是真实文件,则返回文件内容;如果是符号链接,则仅返回文件路径。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)