亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ASP.NET Core上傳文件到minio的實(shí)現(xiàn)示例

 更新時(shí)間:2025年09月03日 08:50:02   作者:冷冷的菜哥  
本文主要介紹了ASP.NET Core上傳文件到minio的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.用到的依賴包—Minio

使用命令添加依賴,或者使用Nugui搜索minio依賴后添加到指定項(xiàng)目中

dotnet add package Minio --version 6.0.5

我這里是使用了JetBrains Rider,這工具其實(shí)也挺好使的,尤其對(duì)于我本身寫java的人來說,很容易習(xí)慣,無非就是占用內(nèi)存比起vs code要高不少。

如果是用vs code,需要先安裝nug包管理插件——NuGet Package Manager GUI

使用command+shift+p(macOS)或者ctrl+shift+p(Windows),輸入nug,然后搜索即可

2.相關(guān)代碼

    [HttpPost("upload/single")]
    [ProducesResponseType(typeof(CommonResult<FileUploadResp>), StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status200OK)]
    public async Task<IActionResult> PostUploadFileMinio(string? bucket, IFormFile file)
    {
        if (file is not { Length: > 0 })
        {
            return Ok(CommonResult<string>.Failed(500, "文件不能為空"));
        }

        _service._logger.LogDebug("上傳的文件信息==={file}", JsonHelper.Serialize(file));
        var response = await _service.UploadFile(bucket, file);
        return Ok(CommonResult<FileUploadResp>.Success("上傳成功", response));
    }
public async Task<FileUploadResp> UploadFile(string? bucket, IFormFile file)
    {
        bucket ??= "test";
        try
        {
            var safeFileName = Path.GetFileName(file.FileName);
            safeFileName = GenerateUniqueFileName(safeFileName);

            await using var stream = file.OpenReadStream();
            await _minioClient.PutObjectAsync(new PutObjectArgs()
                .WithBucket(bucket)
                .WithObject(safeFileName)
                .WithStreamData(stream)
                .WithObjectSize(file.Length)
                .WithContentType(file.ContentType)
            );

            var endpoint = _minioClient.Config.Endpoint;
            if (!Uri.TryCreate(endpoint, UriKind.Absolute, out var uri))
            {
                _logger.LogError("minio的endpoint無效==={uri}", uri);
                throw new ArgumentException("minio端點(diǎn)無效");
            }

            var fileUrl = $"{endpoint}/{bucket}/{safeFileName}";
            var resp = new FileUploadResp(safeFileName, fileUrl);
            _logger.LogDebug("文件上傳成功==={resp}", JsonHelper.Serialize(resp));
            return resp;
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "minio文件上傳異常");
            throw new Model.CusException.MinioException(500, "文件上傳失敗,稍后重試");
        }
    }

3.上傳測(cè)試

在swagger中調(diào)用上傳接口

控制臺(tái)日志

瀏覽器訪問minio圖片

到此這篇關(guān)于ASP.NET Core上傳文件到minio的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)ASP.NET Core上傳文件到minio內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評(píng)論