使用python將圖像上傳minio服務(wù)器
MinIO 是一個(gè)高性能的分布式對(duì)象存儲(chǔ)服務(wù)器
MinIO基于Apache License v2.0開源協(xié)議的對(duì)象存儲(chǔ)服務(wù),非常適合于存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),例如圖片、視頻、備份數(shù)據(jù)和容器/虛擬機(jī)鏡像等
(尤其是在人工智能的應(yīng)用中,經(jīng)常需要把模型結(jié)果和識(shí)別圖像保存至數(shù)據(jù)庫,該方法相比較nginx映射靜態(tài)文件路徑,更簡(jiǎn)潔方便)

安裝依賴
pip install minio
使用python將圖像上傳minio服務(wù)器
from minio import Minio from minio.error import S3Error import cv2 def upload_image_minio(image, image_name): """ 讀取本地圖像并上傳到MinIO 參數(shù): - image: OpenCV圖像對(duì)象 - image_name: 存儲(chǔ)在MinIO中的對(duì)象名稱 返回: - 圖像在MinIO中的訪問URL """ try: # 判斷圖像是否存在 if image is None: raise ValueError(f"無法讀取圖像") # 將圖像編碼為JPEG格式 is_success, buffer = cv2.imencode(".jpg", image) if not is_success: raise RuntimeError("無法將圖像編碼為JPEG格式") # 創(chuàng)建字節(jié)流 io_buf = io.BytesIO(buffer) # 檢查存儲(chǔ)桶是否存在,不存在則創(chuàng)建 found = minio_client.bucket_exists(BUCKET_NAME) if not found: minio_client.make_bucket(BUCKET_NAME) print(f"創(chuàng)建存儲(chǔ)桶: {BUCKET_NAME}") else: print(f"存儲(chǔ)桶已存在: {BUCKET_NAME}") # 上傳圖像到MinIO minio_client.put_object( BUCKET_NAME, image_name, data=io_buf, length=io_buf.getbuffer().nbytes, content_type="image/jpeg" ) # 生成圖像訪問URL image_url = f"http://{MINIO_ENDPOINT}/{BUCKET_NAME}/{image_name}" print(f"圖像已成功上傳至: {image_url}") return image_url except S3Error as e: print(f"MinIO錯(cuò)誤: {e}") return None except Exception as e: print(f"上傳圖像發(fā)生錯(cuò)誤: {e}") return None if __name__ == '__main__': # minio配置參數(shù) MINIO_ENDPOINT = "192.1.35.10:9000" # MinIO服務(wù)端點(diǎn) ACCESS_KEY = "xxxxxxx" # MinIO訪問密鑰 SECRET_KEY = "xxxxxxx" # MinIO密鑰 BUCKET_NAME = "pic-fgd" # 存儲(chǔ)桶名稱 USE_SECURE = False # 已修改為False,使用HTTP協(xié)議而非HTTPS # 初始化MinIO客戶端 minio_client = Minio(MINIO_ENDPOINT, access_key=ACCESS_KEY, secret_key=SECRET_KEY, secure=USE_SECURE) # 讀取本地圖像 image = cv2.imread("C:/Code/yolov5-3.1/fg_dataset/廢鋼分類/image/dcd1-20250924035523-dcd.jpg") # 上傳圖像 image_detect_url = upload_image_minio(image, "test.jpg")
需要注意的地方:
(1)MinIO訪問密鑰 和 MinIO密鑰,需要從Access Keys查找


(2)一開始存儲(chǔ)桶默認(rèn)為private,如果需要通過返回URL鏈接看到圖像,需要修改為public


浙公網(wǎng)安備 33010602011771號(hào)