A menos que esteja faltando alguma coisa, parece que nenhuma das APIs que eu analisei informará quantos objetos estão em um bucket / pasta S3 (prefixo). Existe alguma maneira de obter uma contagem?
file
count
amazon-s3
amazon-web-services
Campos
fonte
fonte
Respostas:
De jeito nenhum, a menos que você
liste todos eles em lotes de 1.000 (que podem ser lentos e sugam a largura de banda - a Amazon parece nunca compactar as respostas XML) ou
faça login na sua conta no S3 e acesse Conta - Uso. Parece que o departamento de cobrança sabe exatamente quantos objetos você armazenou!
Simplesmente fazer o download da lista de todos os seus objetos levará algum tempo e custará algum dinheiro se você tiver 50 milhões de objetos armazenados.
Consulte também este tópico sobre StorageObjectCount - que está nos dados de uso.
Uma API S3 para obter pelo menos o básico, mesmo que tivesse horas, seria ótima.
fonte
Usando a AWS CLI
ou
Nota: O comando cloudwatch acima parece funcionar por alguns enquanto não para outros. Discutido aqui: https://forums.aws.amazon.com/thread.jspa?threadID=217050
Usando o AWS Web Console
Você pode consultar a seção métrica do cloudwatch para obter um número aproximado de objetos armazenados.
Tenho aproximadamente 50 milhões de produtos e demorou mais de uma hora para contar usando
aws s3 ls
fonte
aws s3 ls s3://mybucket/mydirectory/ --recursive | wc -l
Há uma
--summarize
opção que inclui informações de resumo do bucket (ou seja, número de objetos, tamanho total).Aqui está a resposta correta usando o AWS cli:
Veja a documentação
fonte
Total Objects: 7235
Total Size: 475566411749
- tão fácil.Embora essa seja uma pergunta antiga e o feedback tenha sido fornecido em 2015, no momento é muito mais simples, pois o S3 Web Console ativou a opção "Obter tamanho":
Que fornece o seguinte:
fonte
Se você usar a ferramenta de linha de comando s3cmd , poderá obter uma lista recursiva de um determinado balde, enviando-o para um arquivo de texto.
Então, no linux, você pode executar um wc -l no arquivo para contar as linhas (1 linha por objeto).
fonte
-r
comando no é para--recursive
, portanto, ele deve funcionar para subpastas também.aws s3 ls
vez do s3cmd porque é mais rápido. b.) Para baldes grandes, pode demorar muito tempo. Demorou cerca de 5 minutos para arquivos de 1mil. c.) Veja minha resposta abaixo sobre o uso do cloudwatch.Agora, existe uma solução fácil com a API S3 (disponível no AWS CLI):
ou para uma pasta específica:
fonte
Illegal token value '(Contents[])]'
(versão 1.2.9 do aws-cli), quando apenas usando--bucket my-bucket
eA client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
ao usar--bucket s3://my-bucket
. (Ele definitivamente existe, e tem 1000 arquivos.)Você pode usar as métricas do AWS cloudwatch para s3 para ver a contagem exata de cada bloco.
fonte
Acesse Faturamento da AWS, relatórios e depois Relatórios de uso da AWS. Selecione Amazon Simple Storage Service e, em seguida, Operação StandardStorage. Em seguida, você pode baixar um arquivo CSV que inclui um UsageType of StorageObjectCount que lista a contagem de itens para cada bloco.
fonte
Você pode obter facilmente a contagem total e o histórico se for para a guia "Gerenciamento" do console s3 e clicar em "Métricas" ... Captura de tela da guia
fonte
NumberOfObjects (count/day)
gráfico? Seria melhor, pois está diretamente relacionado à questão. Na sua captura de tela, você está mostrando oBucketSizeBytes (bytes/day)
que, embora útil, não está diretamente relacionado ao problema.A API retornará a lista em incrementos de 1000. Verifique a propriedade IsTruncated para ver se ainda há mais. Se houver, é necessário fazer outra chamada e passar a última chave que você obteve como propriedade Marcador na próxima chamada. Você continuaria a fazer um loop assim até IsTruncated ser falso.
Consulte este documento da Amazon para obter mais informações: Iterando através de resultados de várias páginas
fonte
Segmento antigo, mas ainda relevante, pois eu estava procurando a resposta até descobrir isso. Eu queria uma contagem de arquivos usando uma ferramenta baseada em GUI (ou seja, sem código). Eu já uso uma ferramenta chamada 3Hub para arrastar e soltar transferências de e para o S3. Eu queria saber quantos arquivos eu tinha em um determinado balde (não acho que o faturamento divida em baldes).
Eu tinha 20521 arquivos no balde e fiz a contagem em menos de um minuto.
fonte
Eu usei o script python do scalablelogic.com (adicionando o log de contagem). Trabalhou muito bem.
fonte
No s3cmd, basta executar o seguinte comando (em um sistema Ubuntu):
fonte
Se você estiver usando a AWS CLI no Windows, poderá usar o
Measure-Object
PowerShell para obter a contagem total de arquivos, assim comowc -l
no * nix.Espero que ajude.
fonte
Uma das maneiras mais simples de contar o número de objetos no s3 é:
Etapa 1: Selecione a pasta raiz Etapa 2: Clique em Ações -> Excluir (Obviamente, tenha cuidado para não excluí-la) Etapa 3: Aguarde alguns minutos, o aws mostrará o número de objetos e seu tamanho total.
UpVote se você encontrar a solução.
fonte
Nenhuma das APIs fornecerá uma contagem, porque realmente não existe uma API específica da Amazon para fazer isso. Você precisa apenas executar um conteúdo da lista e contar o número de resultados retornados.
fonte
Na linha de comando da AWS CLI, use
ls plus --summarize
. Ele fornecerá a lista de todos os seus itens e o número total de documentos em um determinado balde. Eu não tentei isso com baldes contendo sub-baldes:Demora um pouco (demorou a listar meus documentos 16 + K em cerca de 4 minutos), mas é mais rápido do que contar 1K de cada vez.
fonte
Que tal a análise da classe de armazenamento S3 - Você obtém APIs e também no console - https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
fonte
3Hub foi descontinuado. Existe uma solução melhor, você pode usar o Transmit (somente Mac), basta conectar-se ao seu balde e escolher
Show Item Count
noView
menu.fonte
Você pode baixar e instalar o navegador s3 em http://s3browser.com/ . Quando você seleciona um balde no canto central direito, pode ver o número de arquivos no balde. Mas, o tamanho exibido está incorreto na versão atual.
Gubs
fonte
A maneira mais fácil é usar o console do desenvolvedor, por exemplo, se você estiver no chrome, escolha Ferramentas do desenvolvedor e poderá ver a seguir, você pode encontrar e contar ou fazer alguma correspondência, como 280-279 + 1 = 2
...
fonte
Você pode potencialmente usar o inventário do Amazon S3 que fornecerá uma lista de objetos em um arquivo csv
fonte
Achei a ferramenta do navegador S3 muito usuário, ela fornece arquivos e pastas e a contagem total e o tamanho de qualquer pasta recursivamente
Link para download: https://s3browser.com/download.aspx
fonte
Também pode ser feito com
gsutil du
(Sim, uma ferramenta do Google Cloud)fonte
Você pode simplesmente executar este comando cli para obter a contagem total de arquivos no bucket ou em uma pasta específica
Digitalizar balde inteiro
você pode usar este comando para obter detalhes
Digitalizar uma pasta específica
fonte
Se você estiver procurando por arquivos específicos, digamos
.jpg
imagens, faça o seguinte:fonte
A seguir, é possível fazer isso usando o cliente java.
fonte
Aqui está a versão boto3 do script python incorporado acima.
fonte
aws s3 ls s3: // nome do bloco / prefixo da pasta, se houver algum --recursive | wc -l
fonte