Saltar al contenido

AWS S3: cómo verificar si existe un archivo en un depósito usando bash

Si encuentras algo que no comprendes puedes dejarlo en la sección de comentarios y trataremos de ayudarte rápidamente.

Solución:

La última vez que vi comparaciones de rendimiento getObjectMetadata fue la forma más rápida de comprobar si existe un objeto. Usando el cli de AWS que sería el head-object método, ejemplo:

aws s3api head-object --bucket www.codeengine.com --key index.html

que devuelve:


    "AcceptRanges": "bytes",
    "ContentType": "text/html; charset=utf-8",
    "LastModified": "Sun, 08 Jan 2017 22:49:19 GMT",
    "ContentLength": 38106,
    "ContentEncoding": "gzip",
    "ETag": ""bda80810592763dcaa8627d44c2bf8bb"",
    "StorageClass": "REDUCED_REDUNDANCY",
    "CacheControl": "no-cache, no-store",
    "Metadata": 

Siguiendo las respuestas de @DaveMaple y @MichaelGlenn, esta es la condición que estoy usando:

aws s3api head-object --bucket  --key  || not_exist=true
if [ $not_exist ]; then
  echo "it does not exist"
else
  echo "it exists"
fi

Tenga en cuenta que “aws s3 ls” no funciona del todo, aunque se aceptó la respuesta. Busca por prefixno por un objeto específico key. Descubrí esto de la manera difícil cuando alguien cambió el nombre de un archivo agregando un ‘1’ al final del nombre del archivo, y la verificación de existencia aún devolvería True.

(Intenté agregar esto como un comentario, pero aún no tengo suficientes representantes).

Si eres capaz, tienes el poder dejar un post acerca de qué le añadirías a este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *