Как мне перечислить архивы в Amazon Glacier?

Я новичок в Леднике Амазонки. Я успешно создал хранилище и загрузил несколько архивов. В консоли управления я вижу только имя хранилища и оно содержит 4 архива, занимающих 4,2 ГБ. Но я просто не могу найти способ перечислить архивы в хранилище. Впоследствии мне нужно удалить архивы, так как они содержат неверные данные.

Я искал и гуглил больше часа, но все равно не вижу способа перечислить содержимое хранилища.

2 ответа

Решение

Данные Amazon Glacier на самом деле не предназначены для доступа к прихоти. Для извлечения данных из хранилища требуется значительное время.

Я бы порекомендовал использовать CloudBerry Explorer. Это бесплатно и, по большей части, похоже, работает.

После установки вам необходимо добавить свою учетную запись Glacier.

введите описание здесь

Дважды щелкните "Новая учетная запись" и добавьте отображаемое имя (может быть любым):

введите описание здесь

Чтобы получить доступ и секретные ключи, перейдите по https://portal.aws.amazon.com/gp/aws/securityCredentials или щелкните имя своей учетной записи и выберите "Учетные данные безопасности". введите описание здесь

Скопируйте и вставьте их в новую учетную запись, и все готово. Теперь щелкните правой кнопкой мыши по вашему хранилищу и нажмите Get Inventory. Подождите несколько часов и наслаждайтесь. введите описание здесь

Внутри панели консоли AWS нет способа получить содержимое хранилища. Вы должны использовать SDK или предварительно упакованное программное обеспечение для доступа к этой информации. В своем ответе я использую PHP SDK v3 с Composer, хотя этот код можно адаптировать к другим языкам, таким как Java. Ключ должен использовать InitiateJob Функция 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'));

Последняя строка выше напечатает идентификатор задания в командной строке. Я все еще жду, пока завершится моя работа, хотя я планирую использовать следующий код для получения инвентаризации хранилища:

print $result = $glacierClient->getJobOutput(array('jobId' => 'MYJOBIDHERE', 'vaultName' => 'MYVAULTNAME'));

Вы можете прочитать о initiateJob в документации AWS

Другие вопросы по тегам