Amazon S3 Recupera file cancellato


Risposte:



43

Se hai abilitato il controllo delle versioni, sì, puoi farlo! Su un bucket con versione, un'azione di eliminazione su un file non lo elimina realmente ma aggiunge una versione con un "Elimina marcatore". Puoi eliminare il marker di eliminazione con l'interfaccia della riga di comando di AWS:

aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker

Puoi ottenere tutti i file nel bucket con

aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt

Se vuoi ripristinare tutti i file nel bucket puoi provare:

echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api list-object-versions --bucket yourbucket-name | grep -E "^DELETEMARKERS" | awk '{FS = "[\t]+"; print "aws s3api delete-object --bucket yourbucket-name --key \42"$3"\42 --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;

Apprezzo questa risposta! Ha funzionato perfettamente.
martedì

tipo! il tuo script di recupero di tutti i file mi ha appena salvato la vita. grazie.
Herostwist

Per lo script sopra è necessario aggiungere un --output=textse si desidera che funzioni. Suppone che stai emettendo il tuo comando AWS tramite un file .txt e non .JSON.
Brad Allison,

Ho provato lo script ma non ripristina l'oggetto, lo elimina definitivamente! Può essere perché non sono il proprietario del secchio?
nicola,

1
Perché questa non è la risposta accettata? @vonhogen, ti preghiamo di riconsiderare la tua scelta :)
Janaka Bandara,


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.