我正在开发一个 Flask 应用程序,用户上传一个填充有 .pdf 文件的 .zip 文件,我想将其内容上传到 minIO。一直在尝试使用
put_object
函数,但我在尝试获取大小时遇到问题。
尝试复制这个问题,但我在使用
fileno
方法时遇到麻烦:
file = form.file.data
file.seek(0)
zipfile = ZipFile(BytesIO(file.read()))
files = [zipfile.open(file_name) for file_name in zipfile.namelist()]
client = Minio(host_minio, access_key=access, secret_key=secret, secure=False)
destination_file = f'folder/file.pdf'
specific_file = files[0]
specific_file.seek(0)
file_bytes = BytesIO(specific_file.read())
size = os.fstat(file_bytes.fileno()).st_size
client .put_object(
bucket_name, destination_file, file_bytes , size
)
在这里,
size
给了我以下错误:
io.UnsupportedOperation: fileno
这是正确的做法吗?我缺少什么?谢谢!
经过一番修改后找到了我的答案。这有效:
client.put_object(
bucket, destination_file, file_bytes, len(file_bytes.getvalue())
)