我在Mac OS X上使用了一个名为Arq的工具来备份我的数据,但是我发现上载所有内容非常困难,因为我没有而且也没有足够快的Internet连接。
因此,我决定删除所有备份,但是每当我尝试从软件本身进行备份时,它都不会执行任何操作。
我还在其他Windows机器上尝试过FastGlacier,它挂起并占用过多资源。
我想知道是否有简单的方法可以做到这一点。
PS我的冰川在341907个档案中具有〜450 GB
我在Mac OS X上使用了一个名为Arq的工具来备份我的数据,但是我发现上载所有内容非常困难,因为我没有而且也没有足够快的Internet连接。
因此,我决定删除所有备份,但是每当我尝试从软件本身进行备份时,它都不会执行任何操作。
我还在其他Windows机器上尝试过FastGlacier,它挂起并占用过多资源。
我想知道是否有简单的方法可以做到这一点。
PS我的冰川在341907个档案中具有〜450 GB
Answers:
该项目的清除保险库运作良好:https://github.com/vsespb/mt-aws-glacier
安装,然后运行以下命令(将Vault名称替换为您的Vault名称):
mtglacier retrieve-inventory --config glacier.cfg --vault vault-name
等待大约2个小时,然后
mtglacier download-inventory --config glacier.cfg --vault vault-name --new-journal vault-name.log
mtglacier purge-vault --config glacier.cfg --vault vault-name --journal vault-name.log
glacier-vault-remove
。这种方法能够在几个小时内删除350GB的数据,而glacier-vault-remove
每12小时只能删除大约30GB的数据。
https://github.com/leeroybrun/glacier-vault-remove就是为此目的而创建的。
要删除文件库,请首先安装依赖项:
$ git clone https://github.com/leeroybrun/glacier-vault-remove.git
$ cd glacier-vault-remove
$ python setup.py install
然后credentials.json
在同一目录中创建一个凭证文件:
{
"AWSAccessKeyId": "YOURACCESSKEY",
"AWSSecretKey": "YOURSECRETKEY"
}
然后像这样运行脚本
$ python removeVault.py REGION-NAME VAULT-NAME
范例:
$ python removeVault.py us-east-1 my_vault
如果在Arq中删除由Glacier支持的文件夹,它将进入Arq的垃圾箱。如果在Arq的垃圾箱中选择它,然后单击“永久删除”,则Arq将删除所有Glacier档案,并尝试删除Glacier保管库。删除保管库可能会失败,因为Amazon必须每天更新一次“库存”。第二天,在Arq中的“其他备份集”下浏览,找到该库,选择它,然后单击“删除”将其删除。
如果您的保管库未与任何Arq备份关联,请从Arq的菜单中选择“旧式冰川保管库”,选择该保管库,然后单击按钮删除。
您可以使用CloudBerry Explorer这样的免费软件产品http://www.cloudberrylab.com/free
请注意,冰川数据不会立即可用。您需要等待24小时,以使全球库存在Amazon端发生,然后您应单击获取库存按钮,然后再等待5个小时才能获取帐户的库存。
谢谢
我知道这个问题已经回答了一段时间,但是我认为这可能对某些人有帮助,因为删除Glacier数据仍然非常麻烦。
我没有在任何地方看到此建议……但是,如果您仅将AWS用于Glacier(我认为很多情况都必须如此),则可以考虑关闭您的AWS账户!这是我经过数天努力地用各种工具删除数据的尝试之后所做的。
当您关闭帐户时,Amazon会删除您的数据(据说;它们最终应至少回收磁盘空间),并且您会获得该月的最终收据。再见亚马逊!
本要点提供了一些技巧,以便AWS Glacier Vault
通过AWS CLI 删除(即https://aws.amazon.com/en/cli/)。
$ 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
$ aws glacier get-job-output --job-id YOUR_JOB_ID --vault-name YOUR_VAULT_NAME --region YOUR_REGION ./output.json
您可以ArchiveId
在./output.json
文件中获取所有内容。
来自@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 - }
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()
来自@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每天大约只准备一次文件库清单。
$ aws glacier delete-vault --vault-name YOUR_VAULT_NAME --account-id YOUR_ACCOUNT_ID --region YOUR_REGION
要点最初由@Remiii
好吧,几年前,我关闭了我的帐户,几个月前才重新打开它,然后猜想亚马逊仍然有3TB存入什么亚马逊帐户,现在我已经为过去几个月的账单付款了。
所以我回到这个问题,发现:
在Mac上,您可以尝试使用可以连接到Amazon S3的ForkLift应用程序(免费评估)。