0

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

我想删除保管库,但 Web 控制台不允许我删除,因为它说保管库不是空的。它告诉我保险库包含两个档案,并将最后一个库存日期显示为“2016 年 2 月 5 日 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,这就是我期望得到的响应。但我很肯定,我传递的存档 ID 与我的库存作业中返回的存档 ID 相同。

是什么赋予了?我要做的就是删除这两个档案,这样我就可以删除保险库了。

4

2 回答 2

0

在 204 和实际删除之间似乎有几个小时的延迟。该命令不会导致您可以监控的作业,但最终 204 将导致删除,因此您可以继续使用 delete_vault。

于 2021-11-28T07:49:26.930 回答
0

我可能误解了你的问题......但对我来说,你似乎误解了204 No Content.

这并不意味着“什么都没有”。那将是一个4XX类错误。

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

我认为您刚刚所做的已经完成了您的预期,尽管您可能需要再等几个小时才能通过并再次清点保险库。

如果请求成功,Amazon Glacier 会响应204 No Content以指示存档已删除。

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

于 2016-02-09T21:04:57.577 回答