NETCORE使用MINIO的PRESIGNEDPUTOBJECTASYNC方法,實現通過瀏覽器直接上傳圖片到MINIO服務器

前提:像七牛,阿里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 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/atzqtzq/article/details/107383072
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章