copiar archivos específicos del depósito s3

copiar archivos específicos del depósito s3

Tengo algunos archivos en el depósito s3.

aws s3 ls s3://bucketname/

file-111-100x100.jpg
file-112-1400x1400.jpg
file-123-250x250.jpg
file-231-1400x1400.jpg
file-222-700x700.jpg
file-333-100x100.jpg
file-131-1400x1400.jpg
file-321-250x250.jpg
file-232-480x480.jpg
file-113-1400x1400.jpg
file-331-100x100.jpg

Cómo copiar solo archivos a través de la línea de comando de AWS que tienen texto de 1400*1400 como

file-112-1400x1400.jpg
file-231-1400x1400.jpg
file-131-1400x1400.jpg
file-113-1400x1400.jpg

Ayúdame a hacer esto.

Gracias.

Respuesta1

No estoy seguro de si awscli tiene una forma integrada de hacer esto, pero siempre he usado bash simple para hacer cosas como esta. Por ejemplo:

for i in $(aws s3 ls s3://bucketname/ | grep 1400x1400); do aws s3 cp s3://bucketname/$i; done

No es la forma más bonita de hacerlo, pero es bastante general y flexible.

Respuesta2

Creo que la mejor manera sería usar AWS CLI --includey --excludelos filtros:

aws s3 cp s3://bucketname/ [dest] --exclude "*" --include "*1400x1400*"

¿Dónde [dest]está su destino (es decir, una ruta s3 o una ruta local)?

Dos puntos:

  • Si solo desea incluir ciertos archivos, primero debe hacerlo --exclude "*"antes de incluir cualquier patrón que especifique. Además, el orden de los filtros es importante.
  • También puedes aplicar este filtro de forma recursiva usando la --recursivebandera

Referencia:https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters Más información sobre aws s3 cp:https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

información relacionada