Eu executei um grande número de exclusões de arquivos e quero executar o comando list no meu bucket do Amazon Simple Storage Service (Amazon S3). No entanto, o comando list para de responder e não retorna nenhuma saída.
Resolução
Se você excluiu um grande número de arquivos e o comando ls ou list-objects parar de responder, siga estas etapas de solução de problemas:
Remover marcadores de exclusão de objetos expirados
Em um bucket com versionamento ativado, quando você usa a operação de exclusão para um objeto versionado e não especifica um ID de versão, um marcador de exclusão é criado. Quando as regras de configuração do ciclo de vida definem que as versões anteriores do objeto expirem, o bucket contém os marcadores de exclusão associados aos objetos expirados. Se houver milhares de marcadores de exclusão, a operação de lista poderá expirar. Portanto, é uma prática recomendada remover os marcadores de exclusão de objetos expirados do bucket para melhorar o desempenho de uma operação de lista.
Para limpar com eficiência os marcadores de exclusão de objetos expirados, use uma regra de ciclo de vida:
- Abra o console do Amazon S3.
- Na lista de buckets, escolha o bucket que contém os marcadores de exclusão de objetos expirados.
- Escolha a guia Gerenciamento.
- Escolha Adicionar regra de ciclo de vida e insira um nome de regra. Em seguida, escolha Próximo.
- Para transição de classe de armazenamento, pule esta seção e escolha Avançar.
- Em Configurar expiração, escolha Limpar marcadores de exclusão de objetos expirados. Em seguida, escolha Próximo.
- Revise as configurações da regra do ciclo de vida e escolha Salvar.
Experimente o comando list-objects-v2 ou a versão mais recente da AWS CLI
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
O comando list-objects-v2, ou chamada de API ListObjectsV2, é uma versão atualizada da operação de lista que inclui algumas melhorias de desempenho. O comando de exemplo a seguir solicita uma lista de objetos no awsexamplebucket:
aws s3api list-objects-v2 --bucket awsexamplebucket
Observação: para fins de compatibilidade com versões anteriores, o Amazon S3 continua oferecendo suporte à chamada de API ListObjects.
Use um relatório de inventário Amazon S3
Em vez de uma operação de lista, use um relatório de inventário Amazon S3 para obter uma lista de seus objetos. Quando você executa várias operações de lista para um bucket que tem centenas de milhões de objetos, o processo pode ser desafiador e caro.
É possível obter relatórios diários ou semanais do Inventário Amazon S3 para um bucket ou prefixo e incluir metadados de objetos adicionais em seus relatórios. Também é possível passar um relatório de inventário como entrada para uma operação em lote e usar o Amazon Athena para consultar um relatório.
Informações relacionadas
Definição de preço do Amazon S3