7

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

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

2 ответа2

4

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

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

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

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

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

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .