【发布时间】:2020-02-17 13:52:37
【问题描述】:
需要使用 C# 将图像从私有 git 存储库存储到 blob。尝试使用以下代码,但出现 404 错误。
我正在使用以下代码 C# example of downloading GitHub private repo programmatically
var githubToken = "[token]";
var url =
"https://github.com/[username]/[repository]/archive/[sha1|tag].zip";
var path = @"[local path]";
using (var client = new System.Net.Http.HttpClient())
{
var credentials = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}:", githubToken);
credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(credentials));
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", credentials);
var contents = client.GetByteArrayAsync(url).Result;
System.IO.File.WriteAllBytes(path, contents);
}
注意:可以从公共存储库中获取
【问题讨论】:
-
获取 404 表明资源(在本例中为图像)不在 URL 指定的位置。您可以发布或检查您的网址以查看其是否正确吗?如果它是正确的,但(例如)身份验证失败,它应该给你 404 以外的东西
-
我正在使用个人访问令牌来获取图像。图片 URL 是正确的(如果我将存储库设为公开,我可以使用相同的 URL 获取图片)我怀疑令牌没有进行身份验证。但我在 github 中授予了该令牌的所有权限
-
您提供的链接只是一个包含多个 sn-ps 代码的 stackoverflow 问题。您正在运行的实际代码是什么?存储库是否由为其创建访问令牌的同一帐户拥有?如果您无权访问私有仓库,github 会给出 404
-
正如 LampToast 指出的那样,我错误地认为 GitHub 在未经授权时返回 401,而实际上它返回 404。您能否给我们匿名链接(将您的 GitHub 名称替换为 YourName 之类的名称)。另外edit你的问题是添加你正在使用的代码
-
我使用的链接“github.com/ramakrishnareddy2108/FileAccessTest/blob/master/…”在私有存储库中
标签: c# image asp.net-core github azure-blob-storage