So löschen Sie Vault (AWS Glacier)
Diese Liste enthält einige Tipps zum Entfernen AWS Glacier Vault
mit AWS CLI (z. B. https://aws.amazon.com/en/cli/ ).
Schritt 1 / Inventar abrufen
$ aws glacier initiate-job --job-parameters "{\"Type\": \"inventory-retrieval\"}" --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
Warte 3/5 Stunden… :-(
Für den neuen Schritt benötigen Sie das JobId
. Wenn der Abruf des Inventars abgeschlossen ist, können Sie es mit dem folgenden Befehl abrufen:aws glacier list-jobs --vault-name YOUR_VAULT_NAME --region YOUR_REGION
Schritt 2 / Holen Sie sich die ArchivesIds
$ aws glacier get-job-output --job-id YOUR_JOB_ID --vault-name YOUR_VAULT_NAME --region YOUR_REGION ./output.json
Sehen. Herunterladen eines Tresorinventars in Amazon Glacier
Sie können alle ArchiveId
in der ./output.json
Datei erhalten.
Schritt 3 / Archiv löschen
Power Shell
von @vinyar
$input_file_name = 'output.json'
$vault_name = 'my_vault'
# $account_id = 'AFDKFKEKF9EKALD' #not used. using - instead
$a = ConvertFrom-Json $(get-content $input_file_name)
$a.ArchiveList.archiveid | %{
write "executing: aws glacier delete-archive --archive-id=$_ --vault-name $vault_name --account-id -"
aws glacier delete-archive --archive-id=$_ --vault-name $vault_name --account-id - }
Python
von @robweber
ijson liest die Datei stattdessen als Stream ein. Sie können es mit pip installieren
import ijson, subprocess
input_file_name = 'output.json'
vault_name = ''
account_id = ''
f = open(input_file_name)
archive_list = ijson.items(f,'ArchiveList.item')
for archive in archive_list:
print("Deleting archive " + archive['ArchiveId'])
command = "aws glacier delete-archive --archive-id='" + archive['ArchiveId'] + "' --vault-name " + vault_name + " --acc$
subprocess.run(command, shell=True, check=True)
f.close()
PHP
von @Remiii
<?php
$file = './output.json' ;
$accountId = 'YOUR_ACCOUNT_ID' ;
$region = 'YOUR_REGION' ;
$vaultName = 'YOUR_VAULT_NAME' ;
$string = file_get_contents ( $file ) ;
$json = json_decode($string, true ) ;
foreach ( $json [ 'ArchiveList' ] as $jsonArchives )
{
echo 'Delete Archive: ' . $jsonArchives [ 'ArchiveId' ] . "\n" ;
exec ( 'aws glacier delete-archive --archive-id="' . $jsonArchives [ 'ArchiveId' ] . '" --vault-name ' . $vaultName . ' --account-id ' . $accountId . ' --region ' . $region , $output ) ;
echo $output ;
}
Markieren: Wenn Sie nach dem Löschen eines Archivs das Tresorinventar sofort herunterladen, wird das gelöschte Archiv möglicherweise in die Liste aufgenommen, da Amazon Glacier das Tresorinventar nur etwa einmal täglich erstellt.
Sehen. Löschen eines Archivs in Amazon Glacier
Schritt 4 / Einen Tresor löschen
$ aws glacier delete-vault --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
Ursprünglich von @Remiii
Ok Also vor ein paar Jahren habe ich mein Konto geschlossen und es erst vor ein paar Monaten wiedereröffnet und rate mal, was Amazon noch mit meinen 3 TB auf meinem Konto hat und jetzt habe ich sie für die letzten Monate in Rechnung gestellt.
Also kam ich auf diese Frage zurück und stellte fest, dass:
- mt-aws-glacier ist auf dem neuesten ubuntu fast unmöglich einzurichten dann ging es um 12.04 awscli ist nicht da, dann kam am 14.04 ein fehler über meine signatur ...
- Die Arq-Antwort ist in Arq 5 nicht mehr relevant
- Dann habe ich den obigen Kern gefunden und hier kopiert, weil es besser für die Community ist
- Versucht Moltebeere und es sieht aus wie es funktionieren sollte Ich werde hier in 4 ~ 10 Stunden aktualisieren