/// <summary> /// 码云图床 /// </summary> /// <param name="config"></param> /// <param name="stream"></param> /// <param name="file"></param> /// <returns></returns> private Task <(string url, bool success)> UploadGitee(GitlabConfig config, Stream stream, string file) { var path = $"{DateTime.Now:yyyy/MM/dd}/{file}"; return(_httpClient.PostAsJsonAsync(config.ApiUrl + HttpUtility.UrlEncode(path), new { access_token = config.AccessToken, content = Convert.ToBase64String(stream.ToArray()), message = SnowFlake.NewId }).ContinueWith(t => { if (t.IsCompletedSuccessfully) { using var resp = t.Result; using var content = resp.Content; if (resp.IsSuccessStatusCode || content.ReadAsStringAsync().Result.Contains("already exists")) { return (config.RawUrl + path, true); } } LogManager.Info("图片上传到gitee失败。"); throw t.Exception ?? new Exception(t.Result.ReasonPhrase); })); }
/// <summary> /// 码云图床 /// </summary> /// <param name="config"></param> /// <param name="stream"></param> /// <param name="file"></param> /// <returns></returns> private async Task <(string url, bool success)> UploadGitee(GitlabConfig config, Stream stream, string file) { string path = $"{DateTime.Now:yyyy/MM/dd}/{Path.GetFileName(file)}"; using var resp = await _httpClient.PostAsJsonAsync(config.ApiUrl + HttpUtility.UrlEncode(path), new { access_token = config.AccessToken, content = Convert.ToBase64String(stream.ToByteArray()), message = "上传一张图片" }); if (resp.IsSuccessStatusCode || (await resp.Content.ReadAsStringAsync()).Contains("already exists")) { return(config.RawUrl + path, true); } return(UploadOss(stream, file)); }