Como excluir o Vault (AWS Glacier)
Esta lista fornece algumas dicas para remover AWS Glacier Vault
com o AWS CLI (por exemplo, https://aws.amazon.com/en/cli/ ).
Etapa 1 / Recuperar inventário
$ aws glacier initiate-job --job-parameters "{\"Type\": \"inventory-retrieval\"}" --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
Aguarde 3/5 horas… :-(
Para a nova etapa, você precisa obter o JobId
. Quando o inventário de recuperação é concluído, você pode obtê-lo com o seguinte comando:aws glacier list-jobs --vault-name YOUR_VAULT_NAME --region YOUR_REGION
Etapa 2 / Obter os ArchivesIds
$ aws glacier get-job-output --job-id YOUR_JOB_ID --vault-name YOUR_VAULT_NAME --region YOUR_REGION ./output.json
Vejo. Fazendo download de um inventário do Vault no Amazon Glacier
Você pode obter tudo ArchiveId
no ./output.json
arquivo.
Etapa 3 / Excluir arquivos
Powershell
de @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
de @robweber
ijson , que lê o arquivo como um fluxo. Você pode instalá-lo com pip
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
de @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 ;
}
Marca: depois de excluir um arquivo morto, se você fizer o download imediato do inventário do cofre, ele poderá incluir o arquivo excluído na lista porque o Amazon Glacier prepara o inventário do cofre apenas uma vez por dia.
Vejo. Exclusão de um arquivo no Amazon Glacier
Etapa 4 / Excluir um cofre
$ aws glacier delete-vault --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
Gist originalmente por @Remiii
Ok Então, há alguns anos atrás eu fechei minha conta e a reabri há alguns meses atrás e adivinhe qual amazon ainda tem meus 3 TB na minha conta e agora fui cobrada por eles nos últimos meses.
Então, voltei a esta pergunta e descobri que:
- O mt-aws-glacier é quase impossível de configurar no ubuntu mais recente, depois foi para o 12.04 awscli não está lá, quando o 14.04 obteve um erro sobre a minha assinatura ...
- A resposta do Arq não é mais relevante no Arq 5
- Então eu encontrei a essência acima e copiei aqui porque é melhor para a comunidade
- Tentei cloudberry e parece que deve funcionar vou atualizar aqui em 4 ~ 10 horas