使用 MinIO 调用 MLflow 中的 PutObject 时,由于 MissingContentLength 导致 S3UploadFailedError

问题描述 投票:0回答:1

当尝试使用

mlflow.log_artifact()
保存/上传文件到 MinIO 时,我们的 MLflow 用户突然在之前工作的代码中遇到此错误,该错误是在
boto3
包中引发的(我们本地用作数据湖的
minio
包的依赖项) MLflow 的安装):

S3UploadFailedError: Failed to upload ./dict-20231204.2.json to mlflow/24/<run_id>/artifacts/dict-20231204.2.json: An error occurred (MissingContentLength) when calling the PutObject operation: You must provide the Content-Length HTTP header.

这里提出:

[..]/python3.11/site-packages/boto3/s3/transfer.py:378, in S3Transfer.upload_file()

有任何解决方案或至少解决方法来恢复文件上传到 MinIO 存储桶吗?

python amazon-s3 boto minio mlflow
1个回答
0
投票

一个快速解决方法是降级引发错误的 S3 客户端包,因此:

$ pip install boto3"<1.36.0"


我已经确定该问题(可能与我们的旧版 MinIO 服务器不兼容)已在

1.36.0
版本的
boto3
(由
mlflow
使用)中引入,并在
v1.36.2
中持续存在。

© www.soinside.com 2019 - 2024. All rights reserved.