Как мне перечислить архивы в 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