前提:像七牛,阿里oss都可以實現瀏覽器端直接上傳圖片到圖片服務器,而不經過我們自己的業務系統.
原理大概如下:
代碼實現如下:
1.minio服務端安裝及運行
1.1官方下載window版本
1.2啓動
minio.exe server D:\tool\minioblock
1.3出現如下頁面說明成功了
1.4驗證和測試
瀏覽器打開:localhost:9000,用戶名密碼都是minioadmin
進入後通過右下角的+號,添加一個桶:mybucket
進入mybucket桶後,裏面是空,無任何文件
2.業務系統中
2.1通過nuget引入minio客戶端
2.2 controller中寫入如下代碼
[Route("GetMinioUploadURL")] [HttpGet] [AllowAnonymous] public async Task<ApiResult<string>> GetMinioUploadURL() { var result = new ApiResult<string>(); string bucketName = "mybucket"; string objectName = DateTime.Now.ToString("yyyyMMddHHmmsss")+".jpg"; var client = new MinioClient( endpoint: "192.168.0.235:9000", accessKey: "minioadmin", secretKey: "minioadmin" ); try { string presignedUrl = await client.PresignedPutObjectAsync(bucketName, objectName, 1000); result.Message = presignedUrl; } catch (Exception e) { result.Message = "Exception {e.Message}"; } return result; }
2.3 運行項目
3.瀏覽器端
3.1通過postman訪問接口,拿到上傳URL(message字段值)
3.2 通過上面拿到的上傳URL,開始上傳文件
3.3 進入minio管理臺查看
版權聲明:本文爲atzqtzq原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。