2016-02-09 12 views
0

Я создал хранилище ледников в веб-консоли AWS, а затем программно создал несколько тестовых архивов, используя драгоценный камень Fog.не удалось удалить glacier vault, потому что не пуст, но не может удалить архивы

Я хотел бы удалить хранилище, но веб-консоль не позволит мне, потому что говорит, что хранилище не пусто. Это говорит мне, что хранилище содержит два архива и показывает последнюю дату инвентаризации как «05 февраля 2016 07:01:28 PM UTC-8».

Когда я получаю доступ к хранилищу с помощью Fog, он показывает ту же самую дату последнего инвентаря, но объект «хранилища», который возвращается Fog, не содержит архивов. «vault.archives» - пустая коллекция.

Я полагал, что мне просто нужно было предоставить инвентарную работу, поэтому я и сделал. Когда работа была завершена, здесь был ее выход:

{"VaultARN"=>"EDITED", 
"InventoryDate"=>"2016-02-06T01:01:28Z", 
"ArchiveList"=> 
    [{"ArchiveId"=> 
    "EDITED: ARCHIVE ID", 
    "ArchiveDescription"=>"test", 
    "CreationDate"=>"2016-02-05T21:16:52Z", 
    "Size"=>4, 
    "SHA256TreeHash"=> 
    "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"}, 
    {"ArchiveId"=> 
    "EDITED: ARCHIVE ID", 
    "ArchiveDescription"=>"test", 
    "CreationDate"=>"2016-02-05T21:23:08Z", 
    "Size"=>4, 
    "SHA256TreeHash"=> 
    "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"}]} 

В нем показано хранилище, содержащее два архива. Однако, когда я пытаюсь уничтожить любой из них с помощью Fog, я получаю такой ответ:

#<Excon::Response:0x007ffe12ce5cd0 
@body="", 
@data= 
    {:body=>"", 
    :headers=> 
    {"x-amzn-RequestId"=>"wupVQJALcVeGOC-hp4MsUgApY5CyhW8TdBoILGM3xBYH1aI", 
    "Date"=>"Tue, 09 Feb 2016 16:30:13 GMT"}, 
    :status=>204, 
    :status_line=>"HTTP/1.1 204 No Content\r\n", 
    :reason_phrase=>"No Content", 
    :remote_ip=>"EDITED", 
    :local_port=>51722, 
    :local_address=>"EDITED"}, 
@headers= 
    {"x-amzn-RequestId"=>"wupVQJALcVeGOC-hp4MsUgApY5CyhW8TdBoILGM3xBYH1aI", 
    "Date"=>"Tue, 09 Feb 2016 16:30:13 GMT"}, 
@local_address="EDITED", 
@local_port=51722, 
@remote_ip="EDITED", 
@status=204> 

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

Что дает? Все, что я хочу сделать, это удалить эти два архива, чтобы я мог удалить хранилище.

ответ

0

Возможно, я не понимаю ваш вопрос ... но для меня, похоже, вы неправильно понимаете значение 204 No Content.

Это не означает, что «ничего не было». Это приведет к ошибке класса 4XX.

204 No Content означает «операция выполнена успешно, и эта операция не возвращает тело ответа». Если веб-браузер встречается с ответом 204 с веб-сервера, он не должен изменять просматриваемый документ (в то время как 200 OK с пустым телом ответа будет иметь то же смысловое значение («успех»), но оставит вас глядя в белое окно). Конечно, вы не веб-браузер, но это причина для кода 204.

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

Если запрос выполнен успешно, ледник Амазонки отвечает 204 No Content, чтобы указать, что архив удален.

http://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html

+0

Ах, что бы это объяснить. Еще одна странная вещь: через день после завершения моей инвентаризации веб-консоль по-прежнему показывала «последнюю дату инвентаризации», как за 2 дня до этого. Это нормально? После того, как задание инвентаризации, которое я программно представил, закончено, я ожидаю, что веб-консоль будет отображать «последнюю дату инвентаризации», соответствующую этой задаче. – jph

+0

Nevermind; Я только что проверил консоль, и «последняя дата инвентаризации» обновлена ​​до даты завершения моей работы, а количество архивов обновлено до «нуля». – jph