Elimina varios objetos de un bucket en una sola solicitud.
Notas de uso
Una sola solicitud de DeleteMultipleObjects puede eliminar hasta 1,000 objetos.
Si la replicación de datos está configurada con Sync Additions, Deletions, And Modifications, DeleteMultipleObjects también elimina los objetos correspondientes en el bucket de destino. Los objetos eliminados no se pueden recuperar. Con el control de versiones habilitado, DeleteMultipleObjects crea un marcador de eliminación para cada objeto y esta acción se replica en el bucket de destino.
Los objetos eliminados no se pueden recuperar. Proceda con precaución. Para obtener más información sobre cómo eliminar objetos, consulte Delete objects.
Control de versiones
En un bucket con control de versiones habilitado, DeleteMultipleObjects inserta un marcador de eliminación cuando no se especifica ningún ID de versión. Si se especifica un ID de versión, dicha versión se elimina permanentemente.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos. Los usuarios de RAM o los roles de RAM bajo una cuenta de Alibaba Cloud no tienen ningún permiso de forma predeterminada. La cuenta de Alibaba Cloud o el administrador de la cuenta deben otorgar permisos de operación mediante RAM policies o Bucket Policy.
|
API |
Acción |
Descripción |
|
DeleteMultipleObjects |
oss:DeleteObject |
Elimina varios objetos de un bucket. |
Sintaxis de la solicitud
POST /?delete HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Content-Length: ContentLength
Content-MD5: MD5Value
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<Delete>
<Quiet>true</Quiet>
<Object>
<Key>key</Key>
</Object>
…
</Delete>
Encabezados de la solicitud
OSS utiliza estos encabezados para verificar el cuerpo del mensaje antes de realizar la operación de eliminación.
|
Nombre |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
|
Encoding-type |
String |
No |
url2 |
El método de codificación para las claves de objeto. Si una clave contiene caracteres de control no admitidos por XML 1.0, establezca este valor en url2. OSS codifica entonces el campo Key en la respuesta mediante URL. Valor predeterminado: none Valor válido: url2 |
|
Content-Length |
String |
Sí |
151 |
La longitud del cuerpo del mensaje HTTP. OSS verifica el cuerpo con este valor antes de la eliminación. |
|
Content-MD5 |
String |
Sí |
ohhnqLBJFiKkPSBO1eNaUA== |
El hash MD5 codificado en Base64 del cuerpo del mensaje. OSS calcula y compara este valor para verificar la integridad. Nota
Para calcular este valor: calcule el hash MD5 del cuerpo de la solicitud para obtener una matriz de bytes de 128 bits y luego codifíquela en Base64. |
Elementos de la solicitud
|
Nombre |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
|
Delete |
Contenedor |
Sí |
N/A |
El contenedor para la solicitud DeleteMultipleObjects. Nodos secundarios: uno o más elementos Object y el elemento Quiet Nodo principal: None |
|
Object |
Contenedor |
Sí |
N/A |
El contenedor para la información de un objeto. Nodo secundario: Key Nodo principal: Delete |
|
Key |
String |
Sí |
test.jpg |
El nombre del objeto que se va a eliminar. Nodo principal: Object |
|
Quiet |
Cadena de enumeración |
No |
false |
Controla el modo de respuesta. Modos de respuesta disponibles:
Valores válidos: true (habilita el modo simple) y false (habilita el modo detallado) Valor predeterminado: false Nodo principal: Delete |
|
VersionId |
String |
No |
CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4**** |
El número de versión del objeto que se va a eliminar. Nodo principal: Object |
Elementos de la respuesta
|
Nombre |
Tipo |
Ejemplo |
Descripción |
|
DeleteResult |
Contenedor |
N/A |
El contenedor para el resultado de la solicitud DeleteMultipleObjects. Nodo secundario: Deleted Nodo principal: None |
|
Deleted |
Contenedor |
N/A |
El contenedor para cada objeto eliminado correctamente. Importante
El elemento Deleted solo lista los objetos eliminados correctamente. Compare la lista de la solicitud con la respuesta para identificar fallos. Nodo secundario: Key Nodo principal: DeleteResult |
|
Key |
String |
demo.jpg |
El nombre del objeto eliminado. Nodo principal: Deleted |
|
VersionId |
String |
version_20211101141621_d137 |
El ID de versión. Nodo principal: Deleted |
|
DeleteMarker |
Boolean |
true |
Indica si la versión eliminada es un marcador de eliminación. Valores válidos: true y false. Nota
Se devuelve como true solo cuando se crea o se elimina permanentemente un marcador de eliminación. Nodo principal: Deleted |
|
DeleteMarkerVersionId |
String |
THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk**** |
El ID de versión del marcador de eliminación. Nodo principal: Deleted |
|
EncodingType |
String |
url2 |
El tipo de codificación para los nombres de objeto en la respuesta. Se devuelve solo cuando se especifica Encoding-type en la solicitud. Nodo principal: DeleteResult |
Ejemplos
-
Solicitud de ejemplo con el modo de respuesta simple deshabilitado
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Feb 2012 12:26:16 GMT Content-Length:151 Content-MD5: ohhnqLBJFiKkPSBO1eNaUA== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> <Object> <Key>demo.jpg</Key> </Object> </Delete>Respuesta de ejemplo
HTTP/1.1 200 OK x-oss-request-id: 78320852-7eee-b697-75e1-b6db0f4849e7 Date: Wed, 29 Feb 2012 12:26:16 GMT Content-Length: 244 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Deleted> <Key>multipart.data</Key> </Deleted> <Deleted> <Key>test.jpg</Key> </Deleted> <Deleted> <Key>demo.jpg</Key> </Deleted> </DeleteResult> -
Solicitud de ejemplo con el modo de respuesta simple habilitado
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Wed, 29 Feb 2012 12:33:45 GMT Content-Length:151 Content-MD5: ohhnqLBJFiKkPSBO1eNaUA== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>true</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> <Object> <Key>demo.jpg</Key> </Object> </Delete>Respuesta de ejemplo
HTTP/1.1 200 OK x-oss-request-id: 559CC9BDC755F95A64485981 Date: Wed, 29 Feb 2012 12:33:45 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS -
Solicitud de ejemplo sin un ID de versión
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 04:20:03 GMT Content-MD5: xSLOYWaPC86RPwWXNiFeXg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> </Object> <Object> <Key>test.jpg</Key> </Object> </Delete>Respuesta de ejemplo
Como no se especifican IDs de versión, OSS inserta marcadores de eliminación para ambos objetos y devuelve <DeleteMarker>true</DeleteMarker> y <DeleteMarkerVersionId>XXXXXX</DeleteMarkerVersionId>.
HTTP/1.1 200 OK x-oss-request-id: 5CAC1D73B7AEADE01700**** Date: Tue, 09 Apr 2019 04:20:03 GMT Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult> <Deleted> <Key>multipart.data</Key> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>CAEQMhiBgIDXiaaB0BYiIGQzYmRkZGUxMTM1ZDRjOTZhNjk4YjRjMTAyZjhl****</DeleteMarkerVersionId> </Deleted> <Deleted> <Key>test.jpg</Key> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>CAEQMhiBgIDB3aWB0BYiIGUzYTA3YzliMzVmNzRkZGM5NjllYTVlMjYyYWEy****</DeleteMarkerVersionId> </Deleted> </DeleteResult> -
Solicitud de ejemplo con un ID de versión
NotaDebe especificar tanto la Key como el VersionId.
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:09:34 GMT Content-Length:151 Content-MD5: 2Tpk+dL/tGyuSA+YCEuSVg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4****</VersionId> </Object> </Delete>Respuesta de ejemplo
A continuación se muestra que se devuelven la clave y el ID de versión del objeto eliminado.
HTTP/1.1 200 OK x-oss-request-id: 5CAC371EB7AEADE01700**** Date: Tue, 09 Apr 2019 06:09:34 GMT Content-Length: 244 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Deleted> <Key>multipart.data</Key> <VersionId>CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4****</VersionId> </Deleted> </DeleteResult> -
Solicitud de ejemplo para eliminar un marcador de eliminación al especificar un ID de versión
POST /?delete HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Date: Tue, 09 Apr 2019 06:14:50 GMT Content-Length: 178 Content-MD5: dX9IFePFgYhmINvAhG30Bg== Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <Delete> <Quiet>false</Quiet> <Object> <Key>multipart.data</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> </Object> </Delete>Respuesta de ejemplo
Key y VersionId identifican el objeto eliminado.
Los elementos DeleteMarker y DeleteMarkerVersionId confirman que el elemento eliminado es un marcador de eliminación. En este caso, VersionId y DeleteMarkerVersionId tienen el mismo valor.
HTTP/1.1 200 OK x-oss-request-id: 5CAC385AB7AEADE01700**** Date: Tue, 09 Apr 2019 06:14:50 GMT Content-Length: 364 Content-Type: application/xml Connection: keep-alive Server: AliyunOSS <?xml version="1.0" encoding="UTF-8"?> <DeleteResult xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”> <Deleted> <Key>demo.jpg</Key> <VersionId>CAEQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</VersionId> <DeleteMarker>true</DeleteMarker> <DeleteMarkerVersionId>THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk****</DeleteMarkerVersionId> </Deleted> </DeleteResult>
SDK
Puede llamar a DeleteMultipleObjects mediante los siguientes SDK:
Herramienta de línea de comandos ossutil
El comando de ossutil correspondiente es delete-multiple-objects.
Referencias
Para eliminar un solo objeto, utilice DeleteObject.
Para obtener información sobre cómo eliminar objetos automáticamente, consulte 生命周期.
Códigos de error
|
Código de error |
Código de estado HTTP |
Descripción |
|
InvalidDigest |
400 |
El valor Content-MD5 calculado por OSS no coincide con el valor del encabezado de solicitud Content-MD5. |
|
MalformedXML |
400 |
|
|
FileImmutable |
409 |
El bucket está protegido por una directiva de retención. Los datos protegidos no se pueden eliminar ni modificar. |