Como extraio uma lista de todas as pastas do meu bucket ou diretórios de armazenamento AWS S3?

Como extraio uma lista de todas as pastas do meu bucket ou diretórios de armazenamento AWS S3?

A Amazon oferece uma maneira fácil de extrair uma lista de todas as pastas que possuem arquivos maiores que 500 MB de um bucket s3? quero limitar o escopo aos diretórios '/files/ftp_upload/' também. Isso é para que eu possa calcular meus custos, etc.

Eu tentei isso, mas não recebi muita ajuda

aws s3 ls s3://YOUR_BUCKET/YOUR_FOLDER/ --recursive --human-readable --summarize

qual é a melhor abordagem aqui?

Responder1

S3 não possui um conceito de "pastas", o console apenas apresenta os dados como pastas no console dividindo as chaves do objeto na barra ("/"). Portanto, resumir os dados por "pasta" exigiria a análise da chave de cada objeto.

Você poderia extrair TODOS os dados de objetos que correspondam ao seu prefixo de chave e, em seguida, executar alguma lógica e matemática para resumi-los, mas isso é muito trabalhoso.

Se você não precisar dos dados em tempo real, o S3 Inventory pode ser uma boa solução. Basicamente, você obtém uma lista dos objetos na saída do bucket S3 especificada em um dos três formatos: CSV, Apache ORC ou Apache Parquet. Você pode então fazer cálculos muito mais fáceis com base nos dados.

A desvantagem do S3 Inventory é que leva cerca de um dia para obter o relatório e não é em tempo real.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-inventory.html

- Se você está procurando uma maneira mais fácil de gerenciar custos, talvez queira dividir o caso de uso usando um bucket S3 para cada. Então você poderia utilizar tags de alocação de custos no nível do intervalo.

Além disso, os relatórios de utilização do S3 são úteis para determinar se você deve usar uma classe de armazenamento diferente.

informação relacionada