使用 aws cli 从冰川中检索存档

retrieving archive from glacier using aws cli

我正在寻找一种从冰川中检索存档的方法,但最终出现以下错误。无法了解我遇到的 "Range is not megabyte aligned" 错误。

#aws glacier initiate-job --account-id - --vault-name first-vault --job-parameters file://job-archive-retrieval_1.json
A client error (InvalidParameterValueException) occurred when calling the InitiateJob operation: Invalid range RetrievalByteRange [0, 536870912] Range is not megabyte aligned


cat job-archive-retrieval_1.json
{
        "Type": "archive-retrieval",
        "ArchiveId": "XXXXXX",
        "Description": "Retrieve archive on 2016-08-09 Part 1",
        "RetrievalByteRange": "0-536870912"
}

cat job-archive-retrieval_2.json
{
        "Type": "archive-retrieval",
        "ArchiveId": "XXXXXX",
        "Description": "Retrieve archive on 2016-08-09 Part 2",
        "RetrievalByteRange": "536870913-1073741823"
}

有帮助吗?

我想要做的是,从 Glacier 保险库下载 1GB 的测试文件,作为 2 个作业中的每个 2 个块 (512MB),并将文件合并为一个。无法弄清楚如何指定与 MB 对齐的大小。这是一个测试场景,成本无关紧要。

如果选择提供检索字节参数,必须是StartByte-EndByte形式。为 StartByte 提供的值必须与兆字节对齐(1,048,576 的倍数)。如果您要从存档中的某处检索数据,则为 EndByte + 1 提供的值必须是兆字节对齐的。如果要从 StartByte 检索数据直至存档末尾,只需指定一个比存档大小小 1 的值。

所以我猜0-536870912应该是0-536870911,536870913-1073741823应该是536870912-1073741823。