我是 Amazon Glacier 的新手。我已成功创建保管库并上传了一些档案。在管理控制台中,我只能看到保管库的名称,并且它包含 4 个档案,占用 4.2 GiB。但我就是找不到列出保管库中档案的方法。随后我需要删除这些档案,因为它们包含错误的数据。
我已经在 Google 上搜索了一个多小时,但仍然找不到列出保险库内容的方法。
答案1
Amazon Glacier 数据并不是可以随意访问的。从保险库中提取数据需要花费相当长的时间。
我建议使用 CloudBerry Explorer。它是免费的,而且在大多数情况下似乎都很好用。
安装后,您需要添加您的 Glacier 帐户。
双击新帐户并添加显示名称(可以是任何你想要的):
要获取您的访问密钥和密钥,请导航至 https://portal.aws.amazon.com/gp/aws/securityCredentials或单击您的帐户名并选择安全凭证。
将这些内容复制并粘贴到新帐户中即可。现在右键单击您的保管库并点击获取库存。等待几个小时即可享受。
答案2
在 AWS 控制台面板中,无法获取保管库的内容。您必须使用 SDK 或预打包软件来访问此信息。在我的回答中,我使用的是带有 Composer 的 PHP SDK v3,尽管此代码可以适用于 Java 等其他语言。关键是使用将InitiateJob
Type 设置为 的 API 函数inventory-retrieval
。以下代码需要修改以适合您的特定情况。
require('/Users/Parag/Tetragy/vendor/autoload.php');
use Aws\Glacier\GlacierClient;
$glacierClient = GlacierClient::factory(array('profile' => 'default', 'region' => 'us-east-1', 'version' => '2012-06-01'));
print $result = $glacierClient->initiateJob(array('jobParameters' => array('InventoryRetrievalParameters' => array('StartDate' => '2015-09-01T00:00:00Z', 'EndDate' => '2015-09-10T00:00:00Z'), 'Type' => 'inventory-retrieval'), 'vaultName' => 'MYVAULTNAME'));
上面的最后一行将向命令行打印作业 ID。我仍在等待作业完成,但我计划使用以下代码来获取保险库库存:
print $result = $glacierClient->getJobOutput(array('jobId' => 'MYJOBIDHERE', 'vaultName' => 'MYVAULTNAME'));
initiateJob
您可以阅读AWS 文档