最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.用到的依賴包—Minio

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

dotnet add package Minio --version 6.0.5

我這里是使用了JetBrains Rider,這工具其實也挺好使的,尤其對于我本身寫java的人來說,很容易習慣,無非就是占用內(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端點無效");
            }

            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.上傳測試

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

控制臺日志

瀏覽器訪問minio圖片

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

相關(guān)文章

最新評論

政和县| 崇左市| 连云港市| 西藏| 靖安县| 孟津县| 保靖县| 临高县| 富宁县| 眉山市| 乐安县| 沙河市| 峨眉山市| 竹山县| 乐昌市| 枞阳县| 苏尼特左旗| 施秉县| 樟树市| 万山特区| 博白县| 郸城县| 图木舒克市| 灌南县| 那坡县| 海兴县| 漳浦县| 阳山县| 交口县| 苏州市| 庆安县| 平阴县| 太康县| 七台河市| 繁昌县| 青冈县| 彩票| 西贡区| 芒康县| 曲麻莱县| 天峻县|