.NET CORE上傳文件到碼雲倉庫【搭建自己的圖床】


.NET CORE上傳文件到碼雲倉庫【搭建自己的圖床】

先建一個公共倉庫(隨意提交一個README文件或者.gitignore文件保證master分支的存在),然后到gitee的個人設置頁面找到【私人令牌】菜單創建一個access_token。Gitee官方還友好的提供了基於swagger的API文檔和調試頁面: https://gitee.com/api/v5/swagger#/postV5ReposOwnerRepoContentsPath

搭建步驟

1.新建一個名為imagebed的倉庫

  • 按照碼雲正常建庫步驟即可

2.為imagebed倉庫創建master主分支

  • [推薦]可以從本地向倉庫隨意提交一個README文件或.gitignore文件
  • 或者你用自己的方式也行,只要保證倉庫具有一個master分支即可

3.到個人設置頁面找到【私人令牌】生成新令牌

  • 找到【私人令牌】
    找到【私人令牌】
  • 生成新令牌
    生成新令牌

4.使用Gitee官網API文檔簡單測試文件上傳

  • 填寫信息
    填寫信息
  • 點擊測試
    點擊測試
  • 提交記錄
    提交記錄
  • 查看內容
    查看內容

使用方法

基於.NET CORE MVC項目實現

	/// <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" });            
    }

完整案例:https://github.com/Run2948/ImageBedDemo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM