listobjects files commands cli aws all file count amazon-s3 amazon-web-services

files - ¿Cómo puedo saber cuántos objetos he almacenado en un cubo S3?



aws s3 ls (19)

Uso de AWS CLI

aws s3 ls s3://mybucket/ --recursive | wc -l

o

aws cloudwatch get-metric-statistics / --namespace AWS/S3 --metric-name NumberOfObjects / --dimensions Name=BucketName,Value=BUCKETNAME / Name=StorageType,Value=AllStorageTypes / --start-time 2016-11-05T00:00 --end-time 2016-11-05T00:10 / --period 60 --statistic Average

Nota: El comando anterior de CloudWatch parece funcionar por un tiempo y no por otros. Discutido aquí: https://forums.aws.amazon.com/thread.jspa?threadID=217050

Usar la consola web de AWS

Puede ver la sección métrica de cloudwatch para obtener aproximadamente el número de objetos almacenados.

Tengo aproximadamente 50 millones de productos y me llevó más de una hora contar con aws s3 ls

A menos que me falta algo, parece que ninguna de las API que he analizado le dirá cuántos objetos hay en un cubo / carpeta S3 (prefijo). ¿Hay alguna manera de obtener un conteo?



Ahora hay una solución fácil con la API S3 (disponible en AWS cli):

aws s3api list-objects --bucket BUCKETNAME --output json --query "[length(Contents[])]"

o para una carpeta específica:

aws s3api list-objects --bucket BUCKETNAME --prefix "folder/subfolder/" --output json --query "[length(Contents[])]"


Aunque esta es una pregunta antigua, y los comentarios se proporcionaron en 2015, en este momento es mucho más simple, ya que S3 Web Console ha habilitado la opción "Obtener tamaño":

Que proporciona lo siguiente:


Desde la línea de comandos en AWS CLI, use ls plus --summarize . Le dará la lista de todos sus artículos y la cantidad total de documentos en un cubo en particular. No he intentado esto con cubos que contienen sub-cubos:

aws s3 ls "s3://MyBucket" --summarize

Hace falta algo de tiempo (tardó en listar mis documentos de 16 + K aproximadamente 4 minutos), pero es más rápido que contar 1K a la vez.


En s3cmd, simplemente ejecute el siguiente comando (en un sistema Ubuntu):

s3cmd ls -r s3://mybucket | wc -l


La API devolverá la lista en incrementos de 1000. Verifique la propiedad IsTruncated para ver si todavía hay más. Si hay, debe hacer otra llamada y pasar la última clave que recibió como propiedad Marker en la próxima llamada. Luego continuará haciendo un ciclo así hasta que IsTruncated sea falso.

Consulte este documento de Amazon para obtener más información: iteración a través de resultados de varias páginas


La forma más fácil es usar la consola de desarrollador, por ejemplo, si está en Chrome, elija Herramientas de desarrollador, y puede ver lo siguiente, puede buscar y contar o hacer alguna coincidencia, como 280-279 + 1 = 2

...


Ninguna de las API le dará un conteo porque realmente no hay ninguna API específica de Amazon para hacer eso. Solo debe ejecutar una lista de contenido y contar la cantidad de resultados que se devuelven.


No hay forma, a menos que tú

  1. enumere todos en lotes de 1000 (que pueden ser lentos y absorber el ancho de banda, amazon parece que nunca comprime las respuestas XML), o

  2. inicie sesión en su cuenta en S3 e ingrese Cuenta - Uso. ¡Parece que el departamento de facturación sabe exactamente cuántos objetos has almacenado!

Simplemente descargar la lista de todos sus objetos en realidad llevará algo de tiempo y le costará algo de dinero si tiene 50 millones de objetos almacenados.

También vea este hilo sobre StorageObjectCount , que está en los datos de uso.

Una API S3 para obtener al menos los conceptos básicos, incluso si fue horas de antigüedad, sería genial.


Puede descargar e instalar el navegador s3 desde http://s3browser.com/ . Cuando selecciona un cubo en la esquina central derecha, puede ver la cantidad de archivos en el depósito. Pero, el tamaño que muestra es incorrecto en la versión actual.

Gubs


Puede utilizar las métricas de AWS cloudwatch para s3 para ver el recuento exacto de cada segmento.


Puede utilizar potencialmente el inventario de Amazon S3 que le dará una lista de objetos en un archivo csv


Si usa la herramienta de línea de comandos s3cmd , puede obtener una lista recursiva de un s3cmd particular y enviarlo a un archivo de texto.

s3cmd ls -r s3://logs.mybucket/subfolder/ > listing.txt

Luego, en Linux, puede ejecutar wc -l en el archivo para contar las líneas (1 línea por objeto).

wc -l listing.txt


Utilicé el script python de scalablelogic.com (agregando el registro de conteo). Funcionó muy bien.

#!/usr/local/bin/python import sys from boto.s3.connection import S3Connection s3bucket = S3Connection().get_bucket(sys.argv[1]) size = 0 totalCount = 0 for key in s3bucket.list(): totalCount += 1 size += key.size print ''total size:'' print "%.3f GB" % (size*1.0/1024/1024/1024) print ''total count:'' print totalCount


Vaya a Facturación de AWS, luego a los informes y luego a los informes de Uso de AWS. Seleccione Amazon Simple Storage Service, luego Operation StandardStorage. Luego puede descargar un archivo CSV que incluye un UsageType de StorageObjectCount que enumera el recuento de elementos para cada segmento.


Veo muchas respuestas aquí con | wc -l | wc -l

Sin embargo, nadie ha mencionado el interruptor de --summarize que muestra información resumida del cucharón (es decir, número de objetos, tamaño total).

Entonces, esta es la respuesta correcta usando AWS cli:

aws s3 ls s3://bucketName/path/ --recursive --summarize | grep "Total Objects:" Total Objects: 194273

Ver la documentation


Viejo hilo, pero sigue siendo relevante ya que estaba buscando la respuesta hasta que me di cuenta de esto. Quería un conteo de archivos usando una herramienta basada en GUI (es decir, sin código). Ya uso una herramienta llamada 3Hub para arrastrar y soltar transferencias hacia y desde S3. Quería saber cuántos archivos tenía en un cubo en particular (no creo que la facturación los descomponga por cubos).

So, using 3Hub, - list the contents of the bucket (looks basically like a finder or explorer window) - go to the bottom of the list, click ''show all'' - select all (ctrl+a) - choose copy URLs from right-click menu - paste the list into a text file (I use TextWrangler for Mac) - look at the line count

Tenía 20521 archivos en el cubo y el archivo contaba en menos de un minuto.


3Hub está descontinuado. Hay una mejor solución, puede usar Transmit (solo Mac), luego simplemente conectarse a su cubo y elegir Show Item Count en el menú View .