如何从digitalocean空间对象存储中删除多个密钥?

问题描述

我试图通过使用delete_objects删除多个对象。但是我遇到一个错误。我没有找到有关此问题的任何解决方案。

client = boto3.client("s3",**config)

        response = client.delete_objects(
                    Bucket=BUCKET,Delete={
                        'Objects': [
                            {
                                'Key': 'asdasd1.png',},{
                                'Key': 'asdasd1.png',}
                        ]
                    },RequestPayer='requester'
                )

我收到这样的错误

An error occurred (NotImplemented) when calling the DeleteObjects operation: UnkNown
INFO:     127.0.0.1:46958 - "DELETE /image/ HTTP/1.1" 500 Internal Server Error

解决方法

也许这可以为您提供帮助,这是另一种方式

def cleanup_from_s3(bucket,remote_path):
    s3_contents = list_s3(bucket,remote_path)

    if s3_contents == []:
        return

    for s3_content in s3_contents:
        filename = s3_content["Key"]

        s3_client.delete_object(Bucket=bucket,Key="{0}/{1}".format(remote_path,filename))    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...