Как удалить Убежище (Ледник AWS)
В этом разделе приведены некоторые советы по удалению AWS Glacier Vault
с помощью AWS CLI (т. Е. Https://aws.amazon.com/en/cli/ ).
Шаг 1 / Получить инвентарь
$ aws glacier initiate-job --job-parameters "{\"Type\": \"inventory-retrieval\"}" --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
Ждите в течение 3/5 часов… :-(
Для нового шага вам нужно получить JobId
. Когда инвентаризация завершена, вы можете получить ее с помощью следующей команды:aws glacier list-jobs --vault-name YOUR_VAULT_NAME --region YOUR_REGION
Шаг 2 / Получить ArchivesIds
$ aws glacier get-job-output --job-id YOUR_JOB_ID --vault-name YOUR_VAULT_NAME --region YOUR_REGION ./output.json
Видеть. Загрузка описи хранилища в леднике Амазон
Вы можете получить все ArchiveId
в ./output.json
файле.
Шаг 3 / Удалить архивы
Powershell
от @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 - }
питон
от @robweber
ijson , который вместо этого читает файл как поток. Вы можете установить его с помощью 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
из @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 ;
}
Пометка: после удаления архива, если вы сразу же загрузите инвентаризацию хранилища, он может включить удаленный архив в список, поскольку Amazon Glacier готовит инвентаризацию хранилища только примерно один раз в день.
Видеть. Удаление архива в леднике Амазонки
Шаг 4 / Удалить хранилище
$ aws glacier delete-vault --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
Суть изначально @Remiii
Итак, несколько лет назад я закрыл свой аккаунт и просто открыл его несколько месяцев назад и угадаю, что у amazon все еще есть мои 3 ТБ на моем аккаунте, и теперь я получил счета за них в течение последних нескольких месяцев.
Итак, я вернулся к этому вопросу и обнаружил, что:
- mt-aws-glacier практически невозможно настроить на последнюю версию Ubuntu, после чего перешел на 12.04, а awscli не было, затем, когда до 14.04 появилась ошибка о моей подписи ...
- Ответ Arq больше не актуален в Arq 5
- Тогда я нашел вышеупомянутую суть и скопировал ее здесь, потому что это лучше для сообщества
- Пробовал морошку и похоже она должна работать я обновлю здесь через 4 ~ 10 часов