要将文件作为多部分请求的一部分发送到Python中的MINIO对象存储,而不将文件保存在本地存储中,可以使用以下步骤:
from minio import Minio
from minio.error import ResponseError
from io import BytesIO
minio_client = Minio('minio.example.com',
access_key='YOUR_ACCESS_KEY',
secret_key='YOUR_SECRET_KEY',
secure=True)
请将minio.example.com
替换为您的MINIO服务器地址,YOUR_ACCESS_KEY
和YOUR_SECRET_KEY
替换为您的访问密钥。
def send_file_to_minio(file_data, bucket_name, object_name):
try:
# 将文件数据读取到内存中
file_stream = BytesIO(file_data.read())
# 获取文件数据的大小
file_size = file_stream.getbuffer().nbytes
# 将文件数据作为多部分请求的一部分发送到MINIO对象存储
minio_client.put_object(bucket_name, object_name, file_stream, file_size)
return True
except ResponseError as err:
print(err)
return False
file_data
是包含文件数据的请求对象,bucket_name
是MINIO存储桶的名称,object_name
是要保存的对象名称。
send_file_to_minio
函数发送文件:file = request.files['file'] # 获取上传的文件
bucket_name = 'your_bucket_name' # 替换为您的存储桶名称
object_name = 'your_object_name' # 替换为您要保存的对象名称
if send_file_to_minio(file, bucket_name, object_name):
print('文件已成功发送到MINIO对象存储。')
else:
print('文件发送失败。')
请根据您的实际情况替换your_bucket_name
和your_object_name
。
这样,您就可以将文件作为多部分请求的一部分发送到Python中的MINIO对象存储,而不将文件保存在本地存储中。
领取专属 10元无门槛券
手把手带您无忧上云