A menos que me falte algo, parece que ninguna de las API que he visto le dirá cuántos objetos hay en un bucket / carpeta S3 (prefijo). ¿Hay alguna forma de contar?
file
count
amazon-s3
amazon-web-services
campos
fuente
fuente
Respuestas:
No hay manera, a menos que usted
enumerarlos todos en lotes de 1000 (que pueden ser lentos y absorber el ancho de banda; parece que Amazon nunca comprime las respuestas XML), o
inicie sesión en su cuenta en S3 y vaya a Cuenta - Uso. ¡Parece que el departamento de facturación sabe exactamente cuántos objetos ha almacenado!
Simplemente descargar la lista de todos sus objetos llevará algún tiempo y costará algo de dinero si tiene 50 millones de objetos almacenados.
Consulte también este hilo sobre StorageObjectCount , que se encuentra en los datos de uso.
Una API S3 para obtener al menos lo básico, incluso si tenía horas de antigüedad, sería genial.
fuente
Usando AWS CLI
o
Nota: El comando anterior de cloudwatch parece funcionar para algunos mientras que no para otros. Discutido aquí: https://forums.aws.amazon.com/thread.jspa?threadID=217050
Uso de la consola web de AWS
Puede mirar la sección métrica de cloudwatch para obtener aproximadamente la cantidad de objetos almacenados.
Tengo aproximadamente 50 millones de productos y me llevó más de una hora contarlos usando
aws s3 ls
fuente
aws s3 ls s3://mybucket/mydirectory/ --recursive | wc -l
Hay un
--summarize
interruptor que incluye información de resumen del depósito (es decir, número de objetos, tamaño total).Aquí está la respuesta correcta usando AWS cli:
Ver la documentación
fuente
Total Objects: 7235
Total Size: 475566411749
muy fácil.Aunque esta es una pregunta antigua, y los comentarios se proporcionaron en 2015, ahora es mucho más simple, ya que S3 Web Console ha habilitado la opción "Obtener tamaño":
Que proporciona lo siguiente:
fuente
Si utiliza la herramienta de línea de comandos s3cmd , puede obtener una lista recursiva de un depósito en particular y enviarlo a un archivo de texto.
Luego, en Linux, puede ejecutar un wc -l en el archivo para contar las líneas (1 línea por objeto).
fuente
-r
comando en es para--recursive
, por lo que también debería funcionar para subcarpetas.aws s3 ls
lugar de s3cmd porque es más rápido. b.) Para cubos grandes puede llevar mucho tiempo. Tomó alrededor de 5 minutos para archivos 1mil. c.) Vea mi respuesta a continuación sobre el uso de Cloudwatch.Ahora hay una solución fácil con la API S3 (disponible en el cli de AWS):
o para una carpeta específica:
fuente
Illegal token value '(Contents[])]'
(versión 1.2.9 de aws-cli), cuando solo uso--bucket my-bucket
yA client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
cuando uso--bucket s3://my-bucket
. (Definitivamente existe, y tiene más de 1000 archivos).Puede usar las métricas de AWS Cloudwatch para s3 para ver el recuento exacto de cada depósito.
fuente
Vaya a Facturación de AWS, luego informes, luego 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 depósito.
fuente
Puede obtener fácilmente el recuento total y el historial si va a la pestaña "Administración" de la consola s3 y luego hace clic en "Métricas" ... Captura de pantalla de la pestaña
fuente
NumberOfObjects (count/day)
gráfico? Sería mejor ya que está directamente relacionado con la pregunta. En su captura de pantalla, está mostrando loBucketSizeBytes (bytes/day)
que, si bien es útil, no está directamente relacionado con el problema.La API devolverá la lista en incrementos de 1000. Verifique la propiedad IsTruncated para ver si aún hay más. Si es así, debe realizar otra llamada y pasar la última clave que obtuvo como propiedad de marcador en la próxima llamada. Luego continuaría haciendo un bucle como este hasta que IsTruncated sea falso.
Consulte este documento de Amazon para obtener más información: iterando a través de resultados de varias páginas
fuente
Hilo antiguo, pero aún relevante ya que estaba buscando la respuesta hasta que lo descubrí. Quería un recuento de archivos usando una herramienta basada en GUI (es decir, sin código). Ya uso una herramienta llamada 3Hub para las transferencias de arrastrar y soltar hacia y desde S3. Quería saber cuántos archivos tenía en un depósito en particular (no creo que la facturación lo desglose en depósitos).
Tenía 20521 archivos en el cubo e hice el recuento de archivos en menos de un minuto.
fuente
Usé el script de python de scalablelogic.com (agregando el registro de conteo). Funcionó muy bien.
fuente
En s3cmd, simplemente ejecute el siguiente comando (en un sistema Ubuntu):
fuente
Si está utilizando AWS CLI en Windows, puede usar
Measure-Object
PowerShell para obtener el recuento total de archivos, al igual quewc -l
en * nix.Espero eso ayude.
fuente
Una de las formas más simples de contar el número de objetos en s3 es:
Paso 1: Seleccione la carpeta raíz Paso 2: Haga clic en Acciones -> Eliminar (Obviamente, tenga cuidado de no eliminarlo) Paso 3: Espere unos minutos, aws le mostrará la cantidad de objetos y su tamaño total.
Vota si encuentras la solución.
fuente
Ninguna de las API le dará un recuento porque realmente no hay ninguna API específica de Amazon para hacer eso. Solo tiene que ejecutar una lista de contenidos y contar el número de resultados que se devuelven.
fuente
Desde la línea de comandos en AWS CLI, use
ls plus --summarize
. Le dará la lista de todos sus artículos y el número total de documentos en un cubo en particular. No he intentado esto con cubos que contienen subgrupos:Me tomó un poco de tiempo (me tomó listar mis documentos de 16 + K aproximadamente 4 minutos), pero es más rápido que contar 1K a la vez.
fuente
¿Qué hay de la analítica de clase de almacenamiento S3? Obtiene API, así como en la consola: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
fuente
3Hub se suspende. Hay una mejor solución, puede usar Transmitir (solo Mac), luego simplemente conectarse a su bucket y elegir
Show Item Count
delView
menú.fuente
Puede descargar e instalar el navegador s3 desde http://s3browser.com/ . Cuando selecciona un depósito 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
fuente
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
...
fuente
Potencialmente, puede usar el inventario de Amazon S3 que le dará una lista de objetos en un archivo csv
fuente
La herramienta de navegador S3 me pareció muy útil, proporciona archivos y carpetas y el recuento total, así como el tamaño de cualquier carpeta de forma recursiva
Enlace de descarga: https://s3browser.com/download.aspx
fuente
También se puede hacer con
gsutil du
(Sí, una herramienta de Google Cloud)fuente
Puede ejecutar este comando cli para obtener el recuento total de archivos en el depósito o en una carpeta específica
Escanear todo el cubo
puedes usar este comando para obtener detalles
Escanear una carpeta específica
fuente
Si está buscando archivos específicos, digamos
.jpg
imágenes, puede hacer lo siguiente:fuente
A continuación se muestra cómo puede hacerlo utilizando el cliente java.
fuente
Aquí está la versión boto3 del script python incrustado anteriormente.
fuente
aws s3 ls s3: // nombre-cubo / carpeta-prefijo-si-alguno - recursivo | wc -l
fuente