Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Come posso recuperare un oggetto che ho eliminato da un bucket Amazon S3 per uso generico con controllo delle versioni abilitato?
Desidero recuperare un oggetto che ho eliminato dal mio bucket Amazon Simple Storage Service (Amazon S3) per uso generico con controllo delle versioni abilitato.
Breve descrizione
Nota: il controllo delle versioni S3 è disponibile solo per i bucket per uso generico. I bucket di directory e tabelle non supportano il controllo delle versioni S3.
Quando elimini un oggetto da un bucket con controllo delle versioni abilitato, Amazon S3 crea un contrassegno di eliminazione per l'oggetto. Il contrassegno di eliminazione diventa la versione corrente dell'oggetto e l'oggetto diventa la versione precedente. Con un contrassegno di eliminazione, Amazon S3 risponde alle richieste relative all'oggetto come se l'oggetto fosse stato eliminato. Ad esempio, se invii una richiesta GET per l'oggetto, Amazon S3 restituisce un errore.
Per recuperare un oggetto eliminato da un bucket con controllo delle versioni abilitato, intraprendi una delle seguenti azioni:
- Scarica la versione precedente dell'oggetto. Devi disporre dell'autorizzazione s3:GetObjectVersion.
- Utilizza un account AWS con l'autorizzazione s3:DeleteObjectVersion per rimuovere un contrassegno di eliminazione. La versione non eliminata più recente diventa quindi la versione corrente dell'oggetto in modo da poter accedere all'oggetto precedentemente eliminato in un bucket con controllo delle versioni.
- Nota: se per il bucket hai configurato l'eliminazione con autenticazione a più fattori (MFA), devi utilizzare l'eliminazione MFA per rimuovere il contrassegno di eliminazione.
Risoluzione
Importante: non puoi recuperare dati che elimini definitivamente da un bucket.
Utilizza la console Amazon S3 per scaricare la versione precedente dell'oggetto
Completa i seguenti passaggi:
- Apri la console Amazon S3.
- Nel pannello di navigazione, scegli Bucket, quindi seleziona il bucket dell'oggetto eliminato.
- Per visualizzare un elenco delle versioni dell'oggetto, attiva Mostra versioni.
- Seleziona la versione dell'oggetto eliminato che desideri recuperare.
- Seleziona Operazioni, quindi scegli Scarica.
Utilizza AWS CLI per scaricare la versione precedente dell'oggetto
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI. Nei comandi seguenti, sostituisci DOC-EXAMPLE-BUCKET con il nome del tuo bucket.
Completa i seguenti passaggi:
-
Esegui il comando list-object-versions per elencare le versioni dell'oggetto:
aws s3api list-object-versions --bucket DOC-EXAMPLE-BUCKET --prefix examplefolder/Nota: il comando precedente include l'opzione --prefix per filtrare i risultati in base al prefisso del nome della chiave specificato. Utilizza questa opzione per ridurre il numero di risultati quando il bucket contiene molte versioni dell'oggetto.
-
Dall'output del comando, annota l'ID della versione precedente dell'oggetto.
-
Esegui il comando get-object per recuperare la versione:
aws s3api get-object --bucket DOC-EXAMPLE-BUCKET --key example.txt --version-id example.d6tjAKF1iObKbEnNQkIMPjj filename.txt
Utilizza la console Amazon S3 per rimuovere il contrassegno di eliminazione
Completa i seguenti passaggi:
- Apri la console Amazon S3 dall'account che possiede il bucket dell'oggetto eliminato.
- Nel pannello di navigazione, scegli Bucket, quindi seleziona il bucket dell'oggetto eliminato.
- Per visualizzare un elenco delle versioni dell'oggetto, attiva Mostra versioni.
- Seleziona il contrassegno di eliminazione dell'oggetto.
Importante: assicurati di selezionare il contrassegno di eliminazione e non l'oggetto stesso. Altrimenti non puoi recuperare l'oggetto. - Nella pagina Elimina oggetti, per Permanently delete objects? (Eliminare definitivamente gli oggetti?), scegli Elimina definitivamente.
- Scegli Elimina.
Importante: non puoi utilizzare la console Amazon S3 per ripristinare cartelle. Devi utilizzare AWS CLI o AWS SDK.
Utilizza AWS CLI per rimuovere il contrassegno di eliminazione
Puoi utilizzare AWS CLI per rimuovere il contrassegno di eliminazione di diversi oggetti, migliaia di oggetti o milioni di oggetti.
Rimuovi il contrassegno di eliminazione di diversi oggetti
Completa i seguenti passaggi:
-
Esegui questo comando list-object-versions con il parametro --query:
aws s3api list-object-versions --bucket DOC-EXAMPLE-BUCKET --prefix examplefolder/ --query 'DeleteMarkers[*].{Key: Key, VersionId: VersionId}'Nota: il comando precedente include l'opzione --prefix per filtrare i risultati in base al prefisso del nome della chiave specificato.
-
Dall'output del comando, annota l'ID della versione del contrassegno di eliminazione.
Importante: assicurati di aver annotato l'ID della versione del contrassegno di eliminazione. Se elimini una versione dell'oggetto, non puoi recuperarlo. -
Esegui il comando delete-object per rimuovere il contrassegno di eliminazione:
aws s3api delete-object --bucket DOC-EXAMPLE-BUCKET --key example.txt --version-id 'example.d6tjAKF1iObKbEnNQkIMPjj' -
Per verificare che il contrassegno di eliminazione sia stato rimosso, esegui il comando ls:
aws s3 ls s3://DOC-EXAMPLE-BUCKET
Rimuovi il contrassegno di eliminazione di migliaia di oggetti
Attenzione: è consigliabile eseguire il backup dei dati prima di eseguire il seguente comando list-object-versions. Il comando utilizza l'azione API s3api delete-object per eliminare gli oggetti dei contrassegni di eliminazione identificati. L'eliminazione degli oggetti è un'azione permanente. Modifiche alla struttura di questo comando possono causare una perdita di dati imprevista.
Completa i seguenti passaggi:
- Apri la console AWS CloudShell.
- Esegui il comando list-object-versions:
Nota: il comando precedente utilizza lo strumento jq per analizzare la risposta ListObjectVersions per DeleteMarkers (versione corrente). Per impostazione predefinita, jq è installato su AWS CloudShell. Se non interagisci con l'ambiente shell, la sessione di shell termina. Per ulteriori informazioni sullo strumento jq, consulta ./jq sul sito web jq.aws s3api list-object-versions --bucket DOC-EXAMPLE-BUCKET --prefix examplefolder/ --output json --query 'DeleteMarkers[?IsLatest==`true`].[Key, VersionId]' | jq -r '.[] | "--key " + "'\\\"'" + .[0] + "'\\\"'" + " --version-id " + .[1]' | xargs -L1 -t aws s3api delete-object --bucket DOC-EXAMPLE-BUCKET
Rimuovi il contrassegno di eliminazione di milioni di oggetti
Per rimuovere il contrassegno di eliminazione di milioni di oggetti in un bucket, utilizza uno script personalizzato con AWS SDK. Per ulteriori informazioni, espandi la scheda Utilizzo degli SDK AWS.
Nota: quando esegui list-object-versions su un bucket che contiene milioni di oggetti, potresti ottenere un timeout.
- Argomenti
- Storage
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 2 anni fa
AWS UFFICIALEAggiornata 2 anni fa