如何使用python SDK删除Minio存储中的路径?

如何使用python SDK删除Minio存储中的路径?,python,minio,Python,Minio,我可以使用下面的命令删除minio中的对象 从minio导入minio 从minio.error导入响应错误 minioClient=Minio'localhost:9000', 访问\u key='your-key', secret\u key='your-key',secure=False 移除一个对象。 尝试: minioClient.remove_对象'test','sampletest' 除响应错误作为错误外: 印刷工 这里我有一个包含许多对象的路径。Bucket/path/objec

我可以使用下面的命令删除minio中的对象

从minio导入minio 从minio.error导入响应错误 minioClient=Minio'localhost:9000', 访问\u key='your-key', secret\u key='your-key',secure=False 移除一个对象。 尝试: minioClient.remove_对象'test','sampletest' 除响应错误作为错误外: 印刷工 这里我有一个包含许多对象的路径。Bucket/path/objects,这里我想删除整个path文件夹。在linux中,我可以发出rm-rf路径来递归删除其内容。如何使用Python客户端SDK在Minio中实现同样的功能?我只看到从客户端sdk中删除对象和对象的api。请建议如何删除它


要在minio中删除整个文件夹,只需删除要删除的文件夹的所有内容

在您的情况下,运行时将删除“路径”文件夹

minioClient.remove_object('test','path/p1.jpg')
minioClient.remove_object('test','path/scene1.jpg')

为了更好地执行此操作,可以使用带有前缀和递归参数的list_对象,如下所示:

from minio import Minio
from minio.error import ResponseError

minioClient = Minio('localhost:9000',
                    access_key='your-key',
                    secret_key='your-key', secure=False)

def deleteFolder2(bucketname, folderName):
    # Delete using "remove_object"
    objects_to_delete = minioClient.list_objects(bucketname, prefix=folderName, recursive=True)
    for obj in objects_to_delete:
        minioClient.remove_object(bucketname, obj.object_name)


def deleteFolder1(bucketname, folderName):
    # Delete using "remove_objects"
    objects_to_delete = minioClient.list_objects(bucketname, prefix=folderName, recursive=True)
    objects_to_delete = [x.object_name for x in objects_to_delete]
    for del_err in minioClient.remove_objects(bucketname, objects_to_delete):
        print("Deletion Error: {}".format(del_err))


try:
    # Use either deleteFolder1 or deleteFolder2
    deleteFolder1('test', 'path')
    deleteFolder2('test', 'path')
except ResponseError as err:
    print(err)
注:

deleteFolder1中remove_对象的返回值是迭代器。因为函数是惰性的,默认情况下不会计算。必须对上面返回的迭代器进行求值,例如,使用在deleteFolder1中完成的循环。 只有当服务对迭代器执行删除操作时出现错误,迭代器才会包含项。每个项都包含有删除错误的对象的错误信息。 传递给deleteFunction的folderName应该是绝对路径,即,如果bucket结构如下test/path/path2,并且如果要删除path2文件夹,则需要将path/path2作为folderName传递给deleteFunction
要在minio中删除整个文件夹,只需删除要删除的文件夹的所有内容

在您的情况下,运行时将删除“路径”文件夹

minioClient.remove_object('test','path/p1.jpg')
minioClient.remove_object('test','path/scene1.jpg')

为了更好地执行此操作,可以使用带有前缀和递归参数的list_对象,如下所示:

from minio import Minio
from minio.error import ResponseError

minioClient = Minio('localhost:9000',
                    access_key='your-key',
                    secret_key='your-key', secure=False)

def deleteFolder2(bucketname, folderName):
    # Delete using "remove_object"
    objects_to_delete = minioClient.list_objects(bucketname, prefix=folderName, recursive=True)
    for obj in objects_to_delete:
        minioClient.remove_object(bucketname, obj.object_name)


def deleteFolder1(bucketname, folderName):
    # Delete using "remove_objects"
    objects_to_delete = minioClient.list_objects(bucketname, prefix=folderName, recursive=True)
    objects_to_delete = [x.object_name for x in objects_to_delete]
    for del_err in minioClient.remove_objects(bucketname, objects_to_delete):
        print("Deletion Error: {}".format(del_err))


try:
    # Use either deleteFolder1 or deleteFolder2
    deleteFolder1('test', 'path')
    deleteFolder2('test', 'path')
except ResponseError as err:
    print(err)
注:

deleteFolder1中remove_对象的返回值是迭代器。因为函数是惰性的,默认情况下不会计算。必须对上面返回的迭代器进行求值,例如,使用在deleteFolder1中完成的循环。 只有当服务对迭代器执行删除操作时出现错误,迭代器才会包含项。每个项都包含有删除错误的对象的错误信息。 传递给deleteFunction的folderName应该是绝对路径,即,如果bucket结构如下test/path/path2,并且如果要删除path2文件夹,则需要将path/path2作为folderName传递给deleteFunction 使用以下方法进行操作:

从pyminio导入pyminio pyminio_client=pyminio.from_凭据 端点=,例如localhost:9000/ 访问密钥=, 密匙= pyminio_client.rm'/test/sampletest',recursive=True 使用以下方法进行操作:

从pyminio导入pyminio pyminio_client=pyminio.from_凭据 端点=,例如localhost:9000/ 访问密钥=, 密匙= pyminio_client.rm'/test/sampletest',recursive=True