Saltar al contenido

¿Cómo restaurar carpetas (o depósitos completos) a Amazon S3 desde Glacier?

Solución:

Si utiliza s3cmd puede usarlo para restaurar de forma recursiva con bastante facilidad:

s3cmd restore --recursive s3://mybucketname/ 

También lo he usado para restaurar solo carpetas:

s3cmd restore --recursive s3://mybucketname/folder/

Si está utilizando la herramienta AWS CLI (es bueno, debería hacerlo), puede hacerlo así:

aws s3 ls s3://<bucket_name> | awk '{print $4}' | xargs -L 1 aws s3api restore-object --restore-request Days=<days> --bucket <bucket_name> --key

Reemplazar <bucket_name> con el nombre del depósito que desee.

Reemplazar <days> con la cantidad de días durante los que desea restaurar el objeto.

Las respuestas anteriores no funcionaron bien para mí porque mi cubo estaba mezclado con objetos en Glacier y algunos que no. Lo más fácil para mí fue crear una lista de todos GLACIER objetos en el cubo, luego intente restaurar cada uno individualmente, ignorando cualquier error (como ya en progreso, no un objeto, etc.).

  1. Obtenga una lista de todos los archivos GLACIER (claves) en el depósito

    aws s3api list-objects-v2 --bucket <bucketName> --query "Contents[?StorageClass=='GLACIER']" --output text | awk '{print $2}' > glacier-restore.txt

  2. Cree un script de shell y ejecútelo, reemplazando su “bucketName”.

    #!/bin/sh
    
    for x in `cat glacier-restore.txt`
      do
        echo "Begin restoring $x"
        aws s3api restore-object --restore-request Days=7 --bucket <bucketName> --key "$x"
        echo "Done restoring $x"
      done
    

El crédito es para Josh en http://capnjosh.com/blog/a-client-error-invalidobjectstate-occurred-when-calling-the-copyobject-operation-operation-is-not-valid-for-the-source-objects -storage-class /, un recurso que encontré después de probar algunas de las soluciones anteriores.

¡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 *