假设ServerAddress是https://api.github.com
:
- 如果您知道RepoName('UserName / RepositoryName'对)和FileHash,则可以获取:
ServerAddress +'/repos/RepoName/git/blobs/FileHash'
如果响应中有:
version https://git-lfs.github.com/spec/v1
oid sha256:59f24bc922e1a48bb3feeba18b23f0e9622a7ee07166d925650d7a933283f8b1
size 123882252
- 然后您必须在存储库内容中搜索匹配的FileHash,
获取:ServerAddress + '/repos/RepoName/contents'
并且您会得到以下响应:
{
"name": "filename.ext",
"path": "path/filename.ext",
"sha": "FileHash",
"size": 42,
"url": "https://api.github.com/repos/RepoName/contents/path/filename.ext?ref=master",
"html_url": "...",
"git_url": "...",
"download_url": "...",
"type": "file",
"_links": { ... }
}
现在你需要获取
url
的值,并抓取它。响应数据如下:
{
"name": "filename.ext",
"path": "path/filename.ext",
"sha": "FileHash",
"size": 720896,
"url": "...",
"html_url": "...",
"git_url": "...",
"download_url": "https://media.githubusercontent.com/media/RepoName/RepoHash/path/filename.ext?token=...",
"type": "file",
"content": "...",
"encoding": "base64",
"_links": { ... }
}
- 现在您需要获取
download_url
的值并进行提取,
响应中会返回BINARY
文件内容。
oid sha256:59f24bc922e1a48bb3feeba18b23f0e9622a7ee07166d925650d7a933283f8b1
。 - NevTonsha
键中。 - NevTon