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)文章
微軟發(fā)布的Data Access Application Block的使用代碼
微軟發(fā)布的Data Access Application Block的使用代碼...2007-04-04
javascript實現(xiàn)listbox左右移動實現(xiàn)代碼
javascript實現(xiàn)listbox左右移動實現(xiàn)代碼,需要的朋友可以參考下。2010-05-05
asp.net HttpWebRequest自動識別網(wǎng)頁編碼
HttpWebRequest獲取網(wǎng)頁源代碼時自動識別網(wǎng)頁編碼,通過讀取頁面中的charset和讀取http頭中的編碼信息獲取頁面的編碼,基本可以正確獲取網(wǎng)頁編碼2008-09-09

