下午在写minio上批量删除对象的逻辑,各种改对象名称,各种核对代码,发现啥都没错,但是删除就是不生效。
代码如下:
from minio.deleteobjects import DeleteObjectdelete_object_list = [DeleteObject("20250626/20250626025656.xlsx")]
self.minio.remove_objects(self.bucket, delete_object_list)
后来想试着打印下报错,看看哪里出了问题,结果发现迭代一下报错就可以删除了……
修改后的代码如下:
delete_object_list = [DeleteObject("20250626/20250626025656.xlsx")]
errors = self.minio.remove_objects(self.bucket, delete_object_list)
for err in errors:logger.error(f"error occurred when deleting object, {err.object_name}: {err.message}")
搜了一下才知道,原来它的批量删除是懒惰执行
,必须迭代errors才会触发删除操作。
好大的坑……