无法删除冰川保险库,因为不是空的,但无法删除档案

时间:2016-02-09 16:35:43

标签: amazon-web-services fog amazon-glacier

我在AWS Web控制台中创建了一个Glacier文件库,然后使用Fog gem以编程方式创建了一些测试档案。

我想删除保险库,但是Web控制台不会让我,因为它说保险库不是空的。它告诉我保险库包含两个档案,并将最后一个库存日期显示为“2016年2月5日07:01:28 UTC UTC-8”。

当我使用Fog访问Vault时,它显示的是相同的最后一个库存日期,但Fog返回的“vault”对象不包含任何存档。 “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,那就是我期望得到的回复。但我很肯定我正在传递我的库存工作中返回的相同存档ID。

是什么给出的?我想要做的就是删除这两个档案,以便我可以删除保险库。

1 个答案:

答案 0 :(得分:0)

我可能误解了你的问题......但对我而言,你似乎误解了204 No Content的含义。

这并不意味着“什么都没有”。这会导致4XX类错误。

204 No Content表示“操作成功,此操作不返回响应正文”。如果Web浏览器受到来自Web服务器的204响应的欢迎,则不应该更改您正在查看的文档(而具有空响应主体的200 OK将具有相同的语义含义(“成功“),但会让你盯着白色的窗户)。当然,您不是网络浏览器,但这就是204代码的原因。

我认为你刚刚做了什么已经完成了你的预期,尽管你可能需要等待几个小时才能再次通过和库存金库。

  

如果请求成功,Amazon Glacier会以204 No Content回复,表明存档已被删除。

     

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