先建一個公共倉庫(隨意提交一個README文件或者.gitignore文件保證master分支的存在),而後到gitee的我的設置頁面找到【私人令牌】菜單建立一個access_token。Gitee官方還友好的提供了基於swagger的API文檔和調試頁面: https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoContentsPathgit
imagebed
的倉庫imagebed
倉庫建立master
主分支master
分支便可基於.NET CORE MVC項目實現github
/// <summary> /// 碼雲倉儲文件上傳API /// </summary> /// <param name="stream"></param> /// <param name="file"></param> /// <returns></returns> public async Task<(string url, bool success)> UploadGitee(Stream stream, string file) { string base64String = Convert.ToBase64String(stream.StreamToByte()); string path = $"{DateTime.Now:yyyyMMdd}/{Path.GetFileName(file)}"; using (var resp = await _httpClient.PostAsJsonAsync(AppConfig.GiteeConfig.ApiUrl + HttpUtility.UrlEncode(path), new { access_token = AppConfig.GiteeConfig.AccessToken, content = base64String, message = "上傳一個文件" })) { if (resp.IsSuccessStatusCode || (await resp.Content.ReadAsStringAsync()).Contains("already exists")) { return (AppConfig.GiteeConfig.RawUrl + path, true); } } return await Task.Run(() => (null, false)); } /// <summary> /// MVC上傳文件 /// </summary> /// <param name="file"></param> /// <returns></returns> [HttpPost("upload"), ApiExplorerSettings(IgnoreApi = false)] public async Task<ActionResult> UploadFile(IFormFile file) { var (url, success) = await _imagebedClient.UploadImage(file.OpenReadStream(), file.FileName); return await success ? Json(new { code = 1, msg = "success", data = url }) : Json(new { code = 0, msg = "failure" }); }