Todos os produtos
Search
Central de documentação

Object Storage Service:rm

Última atualização: Sep 02, 2026

Este tópico descreve como executar o comando rm para excluir objetos, partes ou buckets desnecessários e evitar cobranças indevidas.

Observações de uso

  • A exclusão de um único objeto requer a permissão oss:DeleteObject. Para excluir todos os objetos de um diretório, são necessárias as permissões oss:DeleteObject e oss:ListObjects. A exclusão de uma versão específica de objeto exige a permissão oss:DeleteObjectVersion. Já para excluir todas as versões de objetos em um bucket, você precisa das permissões oss:ListObjectVersions e oss:DeleteObjectVersion. Se o objetivo for excluir todas as versões de objetos em um diretório, as permissões exigidas são oss:DeleteObjectVersion e oss:ListObjects. Para remover partes de um objeto, utilize as permissões oss:ListMultipartUploads e oss:AbortMultipartUpload. A exclusão de todos os objetos e partes de um bucket requer as permissões oss:ListMultipartUploads, oss:AbortMultipartUpload, oss:ListObjects e oss:DeleteObject. Por fim, excluir um bucket exige a permissão oss:DeleteBucket.

  • No ossutil 1.6.16 e versões posteriores, use diretamente ossutil como nome do binário na linha de comando, sem necessidade de alteração conforme o sistema operacional. Em versões anteriores à 1.6.16, ajuste o nome do binário de acordo com o sistema operacional. Para mais informações, consulte ossutil command reference.

Sintaxe do comando

ossutil rm oss://bucketname[/prefix]
[-r, --recursive]
[-b, --bucket]
[-m, --multipart]
[-a, --all-type]
[-f, --force]
[--include <value>]
[--exclude <value>]
[--version-id <value>] 
[--all-versions]
[--payer <value>]
[--encoding-type <value>]

A tabela a seguir descreve os parâmetros e opções da sintaxe.

Parâmetro/Opção

Descrição

bucketname

Nome do bucket.

prefix

Prefixo nos nomes dos recursos, como diretórios e objetos.

-r, --recursive

Se especificada, o ossutil exclui do bucket todos os objetos cujos nomes contenham o prefixo indicado. Caso contrário, apenas os objetos especificados serão excluídos.

-b, --bucket

Indica que o comando deve excluir o bucket. Esta opção é obrigatória somente para exclusão de buckets.

-m, --multipart

Aplica a operação às tarefas incompletas de upload multipart no bucket.

-a, --all-type

Abrange tanto os objetos com o prefixo indicado quanto os dados gerados por tarefas incompletas de upload multipart no bucket.

-f, --force

Força a execução da operação sem solicitar confirmação.

--include

Inclui todos os objetos que atendem às condições especificadas.

Para mais informações, consulte Options --include and --exclude.

--exclude

Exclui todos os objetos que atendem às condições especificadas.

Para mais informações, consulte Options --include and --exclude.

--version-id

ID da versão do objeto. Este parâmetro se aplica apenas a buckets com versionamento ativado ou suspenso.

--all-versions

Abrange todas as versões dos objetos. Esta opção vale apenas para objetos em buckets com versionamento ativado ou suspenso. Em um único comando rm, especifique apenas uma das opções: --version-id ou --all-versions.

--payer

Responsável pelo pagamento das taxas geradas pela operação. Para que o solicitante que acessa os recursos no caminho especificado pague as taxas decorrentes, como tráfego e requisições, defina este parâmetro como requester.

--encoding-type

Codificação do prefixo após oss://bucket_name. Valor válido: url. Se esta opção não for especificada, o prefixo não será codificado.

Excluir objetos

Aviso

Objetos excluídos não podem ser recuperados. Tenha cautela ao realizar esta operação.

O uso do comando rm, com ou sem a opção -r, para excluir um ou mais objetos aciona as operações ListObjects (GetBucket) e DeleteObject. Nesse caso, há cobrança pelo envio de requisições PUT. Para mais informações, consulte Request fees.

Aviso
  • O uso simultâneo das opções --include e --exclude em um comando rm pode causar exclusões acidentais devido a configurações inadequadas de condições. Recomendamos cautela ao combinar ambas as opções no mesmo comando.

  • É possível especificar mais de uma condição nas opções --include e --exclude. Todas as condições são aplicadas da esquerda para a direita para corresponder aos objetos. Ao definir múltiplas condições, recomendamos colocar a opção --include antes da --exclude.

  • Exemplos

    • Excluir um único objeto

      Exclua um objeto chamado exampleobject.txt de um bucket chamado examplebucket.

      ossutil rm oss://examplebucket/exampleobject.txt
    • Exclua todos os objetos cujos nomes contenham o prefixo "test" de um bucket chamado examplebucket.

      ossutil rm oss://examplebucket/test -r
    • Exclua todos os objetos com sufixo ".png" de um bucket chamado examplebucket.

      ossutil rm oss://examplebucket  --include "*.png" -r
    • Exclua objetos cujos nomes contenham a string "abc" e não tenham os sufixos ".jpg" ou ".txt" em um bucket chamado examplebucket.

      ossutil rm oss://examplebucket  --include "*abc*" --exclude "*.jpg" --exclude "*.txt" -r
    • Exclua uma versão específica do objeto exampleobject.txt em um bucket com versionamento ativado chamado examplebucket.

      ossutil rm oss://examplebucket/exampleobject.txt --version-id  CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****

      Para saber como obter todas as versões de um objeto, consulte ls.

    • Exclua todas as versões do objeto exampleobject.txt de um bucket com versionamento ativado chamado examplebucket.

      ossutil rm oss://examplebucket/exampleobject.txt --all-versions
    • Exclua todas as versões de todos os objetos em um bucket com versionamento ativado chamado examplebucket.

      ossutil rm oss://examplebucket --all-versions -r
    Nota

    Se o nome de um objeto contiver caracteres de controle, como SOH (0x01), BS (0x08) ou DEL (0x7F), a execução de ossutil rm sem a opção --encoding-type falhará em localizar o objeto, pois o nome não será interpretado corretamente. Da mesma forma, executar ossutil ls sem --encoding-type não exibirá esses caracteres de controle, fazendo com que o objeto pareça ausente mesmo existindo no bucket. Especifique --encoding-type url para que o ossutil exiba e localize corretamente nomes de objetos que contenham caracteres de controle.

  • Saída de exemplo

    Uma resposta de sucesso inclui a quantidade de objetos excluídos e o tempo gasto para concluir a operação:

    Succeed: Total 8 objects. Removed 8 objects.
    0.106852(s) elapsed

Excluir partes

O uso do comando rm com múltiplas opções para excluir partes aciona as operações ListMultipartUploads, ListParts e AbortMultipartUpload. Consequentemente, há cobrança pelo envio de requisições GET durante as chamadas de ListMultipartUploads e ListParts, e pelo envio de requisições PUT na chamada de AbortMultipartUpload. Para mais informações, consulte Request fees.

  • Exemplos

    • Use a opção -m no comando para excluir partes geradas por tarefas incompletas de upload multipart do objeto exampleobject.txt em um bucket chamado examplebucket.

      ossutil rm -m oss://examplebucket/exampleobject.txt
    • Combine as opções -m e -r no comando para excluir recursivamente as partes geradas por tarefas incompletas de upload multipart de objetos com o prefixo "test" em um bucket chamado examplebucket.

      ossutil rm -m oss://examplebucket/test -r 
      Do you really mean to remove recursively multipart uploadIds of oss://examplebucket/test(y or N)? y 
    • Use as opções -a e -r no comando para excluir recursivamente objetos com o prefixo "src" e as partes geradas por tarefas incompletas de upload multipart desses objetos em um bucket chamado examplebucket.

      ossutil rm  oss://examplebucket/src -a -r
      Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket/src(y or N)? y
  • Resposta de exemplo

    Uma resposta de sucesso apresenta a quantidade de objetos excluídos, o número de tarefas de upload multipart que geraram as partes excluídas e o tempo total da operação:

    Succeed: Total 1 objects, 3 uploadIds. Removed 1 objects, 3 uploadIds.
    1.922915(s) elapsed

Excluir buckets

  • Exclua o bucket examplebucket que não contém objetos ou partes.

    ossutil rm oss://examplebucket -b
    Do you really mean to remove the Bucket: examplebucket(y or N)? y

    Uma resposta de sucesso mostra o nome do bucket excluído e o tempo necessário para a exclusão:

    Removed Bucket: examplebucket
    2.230745(s) elapsed
  • Exclua um bucket chamado examplebucket junto com todos os seus objetos e partes.

    Aviso

    A execução do comando abaixo apaga permanentemente todos os dados do bucket, sem possibilidade de recuperação. Proceda com extrema cautela.

    ossutil rm  oss://examplebucket -b -a -r
    Do you really mean to remove recursively objects and multipart uploadIds of oss://examplebucket(y or N)? y
    Do you really mean to remove the Bucket: examplebucket(y or N)? y

    Uma resposta de sucesso informa a quantidade de objetos excluídos, o número de tarefas de upload multipart que originaram as partes excluídas, o nome do bucket removido e o tempo total da operação:

    Succeed: Total 189 objects, 37 uploadIds. Removed 189 objects, 37 uploadIds.
    Removed Bucket: examplebucket
    9.184193(s) elapsed

Solução de problemas

Se o comando ossutil rm -b -a -r falhar porque o bucket contém objetos cujos nomes incluem caracteres de controle, como SOH (0x01), BS (0x08) ou DEL (0x7F), utilize o fluxo alternativo abaixo para excluir o bucket:

  1. Liste os objetos do bucket com os nomes codificados em URL para tornar visíveis os caracteres de controle:

    ossutil api list-objects --bucket <bucket_name> --encoding-type url --output-format json
  2. Use os nomes codificados dos objetos para montar o corpo da requisição de exclusão e exclua os objetos em lote:

    ossutil api delete-multiple-objects --bucket <bucket_name> --encoding-type url2 --delete file://delete-objects.xml
  3. Exclua o bucket, que agora está vazio:

    ossutil rb oss://<bucket_name>
Nota

No ossutil 2.x, a opção -b não é mais suportada para exclusão de buckets. Use o comando rb em vez de rm -b.

Um byte NUL (0x00) não pode fazer parte da chave de um objeto. Se você tentar criar um objeto cujo nome contenha um byte NUL, o OSS retornará um erro 400 BadRequest.

Opções comuns

Para acessar um bucket em outra região, use -e para especificar o endpoint. Para acessar um bucket pertencente a outra conta Alibaba Cloud, use -i para o AccessKey ID e -k para o AccessKey secret.

Por exemplo, execute o comando abaixo para excluir um objeto chamado exampletest.png de um bucket chamado testbucket, localizado na região China (Shanghai) e pertencente a outra conta Alibaba Cloud:

ossutil rm oss://testbucket/exampletest.png -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID  -k yourAccessKeySecret

Common options.