Exclui vários objetos de um bucket em uma única solicitação.
Observações de uso
Uma única solicitação DeleteMultipleObjects pode excluir até 1.000 objetos.
Se a replicação de dados estiver configurada com Sync Additions, Deletions, And Modifications, o DeleteMultipleObjects também exclui os objetos correspondentes no bucket de destino. Não é possível recuperar objetos excluídos. Com o versionamento ativado, o DeleteMultipleObjects cria um marcador de exclusão para cada objeto e replica essa ação para o bucket de destino.
Objetos excluídos não podem ser recuperados. Proceda com cautela. Para obter mais informações sobre como excluir objetos, consulte Excluir objetos.
Versionamento
Em um bucket com versionamento ativado, o DeleteMultipleObjects insere um marcador de exclusão quando nenhum ID de versão é especificado. Se você especificar um ID de versão, essa versão será excluída permanentemente.
Permissões
Por padrão, uma conta Alibaba Cloud tem permissões totais. Usuários RAM ou funções RAM vinculados a uma conta Alibaba Cloud não possuem permissões por padrão. A conta Alibaba Cloud ou o administrador da conta deve conceder as permissões de operação por meio de políticas do RAM ou Bucket Policy.
|
API |
Ação |
Descrição |
|
DeleteMultipleObjects |
oss:DeleteObject |
Exclui vários objetos de um bucket. |
Sintaxe da solicitação
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>
Cabeçalhos da solicitação
O OSS utiliza estes cabeçalhos para verificar o corpo da mensagem antes de executar a operação de exclusão.
|
Nome |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
Encoding-type |
String |
Não |
url2 |
Método de codificação para chaves de objeto. Se uma chave contiver caracteres de controle incompatíveis com XML 1.0, defina este valor como url2. O OSS então codifica o campo Key na resposta usando URL encoding. Valor padrão: none Valor válido: url2 |
|
Content-Length |
String |
Sim |
151 |
Comprimento do corpo da mensagem HTTP. O OSS verifica o corpo em relação a este valor antes da exclusão. |
|
Content-MD5 |
String |
Sim |
ohhnqLBJFiKkPSBO1eNaUA== |
Hash MD5 do corpo da mensagem codificado em Base64. O OSS calcula e compara este valor para verificar a integridade. Nota
Para calcular este valor: calcule o hash MD5 do corpo da solicitação para obter um array de bytes de 128 bits e, em seguida, codifique-o em Base64. |
Elementos da solicitação
|
Nome |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
Delete |
Container |
Sim |
N/A |
Contêiner da solicitação DeleteMultipleObjects. Nós filhos: um ou mais elementos Object e o elemento Quiet Nó pai: Nenhum |
|
Object |
Container |
Sim |
N/A |
Contêiner das informações sobre um objeto. Nó filho: Key Nó pai: Delete |
|
Key |
String |
Sim |
test.jpg |
Nome do objeto a ser excluído. Nó pai: Object |
|
Quiet |
Enumeration string |
Não |
false |
Controla o modo de resposta. Modos de resposta disponíveis:
Valores válidos: true (ativa o modo simples) e false (ativa o modo detalhado) Valor padrão: false Nó pai: Delete |
|
VersionId |
String |
Não |
CAEQNRiBgIDyz.6C0BYiIGQ2NWEwNmVhNTA3ZTQ3MzM5ODliYjM1ZTdjYjA4**** |
Número da versão do objeto a ser excluído. Nó pai: Object |
Elementos da resposta
|
Nome |
Tipo |
Exemplo |
Descrição |
|
DeleteResult |
Container |
N/A |
Contêiner do resultado da solicitação DeleteMultipleObjects. Nó filho: Deleted Nó pai: Nenhum |
|
Deleted |
Container |
N/A |
Contêiner para cada objeto excluído com êxito. Importante
O elemento Deleted lista apenas os objetos excluídos com sucesso. Compare a lista da solicitação com a resposta para identificar falhas. Nó filho: Key Nó pai: DeleteResult |
|
Key |
String |
demo.jpg |
Nome do objeto excluído. Nó pai: Deleted |
|
VersionId |
String |
version_20211101141621_d137 |
ID da versão. Nó pai: Deleted |
|
DeleteMarker |
Boolean |
true |
Indica se a versão excluída é um marcador de exclusão. Valores válidos: true e false. Nota
Retornado como true apenas quando um marcador de exclusão é criado ou excluído permanentemente. Nó pai: Deleted |
|
DeleteMarkerVersionId |
String |
THUQNRiBgICEoPiC0BYiIGMxZWJmYmMzYjE0OTQ0ZmZhYjgzNzkzYjc2NjZk**** |
ID da versão do marcador de exclusão. Nó pai: Deleted |
|
EncodingType |
String |
url2 |
Tipo de codificação para nomes de objetos na resposta. Retornado apenas quando Encoding-type é especificado na solicitação. Nó pai: DeleteResult |
Exemplos
-
Exemplo de solicitação com o modo de resposta simples desativado
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>Exemplo de resposta
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> -
Exemplo de solicitação com o modo de resposta simples ativado
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>Exemplo de resposta
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 -
Exemplo de solicitação sem ID de versão
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>Exemplo de resposta
Como nenhum ID de versão foi especificado, o OSS insere marcadores de exclusão para ambos os objetos e retorna <DeleteMarker>true</DeleteMarker> e <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> -
Exemplo de solicitação com ID de versão
NotaÉ necessário especificar tanto a Key quanto o 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>Exemplo de resposta
O exemplo a seguir mostra que a chave e o ID da versão do objeto excluído são retornados.
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> -
Exemplo de solicitação para excluir um marcador de exclusão especificando um ID de versão
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>Exemplo de resposta
Key e VersionId identificam o objeto excluído.
Os elementos DeleteMarker e DeleteMarkerVersionId confirmam que o item excluído é um marcador de exclusão. Neste caso, VersionId e DeleteMarkerVersionId têm o mesmo 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
Use os seguintes SDKs para chamar o DeleteMultipleObjects:
Ferramenta de linha de comando ossutil
O comando ossutil correspondente é delete-multiple-objects.
Referências
Para excluir um único objeto, use DeleteObject.
Para obter informações sobre como excluir objetos automaticamente, consulte Ciclo de vida.
Códigos de erro
|
Código de erro |
Código de status HTTP |
Descrição |
|
InvalidDigest |
400 |
O valor Content-MD5 calculado pelo OSS não corresponde ao valor do cabeçalho de solicitação Content-MD5. |
|
MalformedXML |
400 |
|
|
FileImmutable |
409 |
O bucket está protegido por uma política de retenção. Dados protegidos não podem ser excluídos ou modificados. |