【问题标题】:aws glacier job ID was not found未找到 aws glacier 作业 ID
【发布时间】:2017-07-14 21:53:25
【问题描述】:

我正在尝试查看我的 aws glacier 保险库中的文件。我正在使用亚马逊 cli。我第一次做

aws glacier list-jobs --account-id - --region ca-central-1 --vault-name gamesDB

得到这个结果

{
    "JobList": [{
        "CompletionDate": "2017-07-13T19:33:01.357Z",
        "JobId": "0_Yskg7YiAD8exUca58f2NMEC_hb7fsoy4arhpYBBkuMHqS__h10ol8_lPYCLc-Qoe1E8PXQso3HZ0usCaG6wzyPtRqb",
        "InventorySizeInBytes": 1123,
        "StatusCode": "Succeeded",
        "StatusMessage": "Succeeded",
        "VaultARN": "arn:aws:glacier:ca-central-1:710541751822:vaults/gamesDB",
        "InventoryRetrievalParameters": {
            "Format": "JSON"
        },
        "Action": "InventoryRetrieval",
        "Completed": true,
        "CreationDate": "2017-07-13T15:38:58.835Z"
    }]
}

然后我做了

aws glacier get-job-output --account-id - --vault-name gamesDB --job-id 0_Yskg7YiAD8exUca58f2NMEC_hb7fsoy4arhpYBBkuMHqS__h10ol8_lPYCLc-Qoe1E8PXQso3HZ0usCaG6wzyPtRqb output.json

得到了

调用GetJobOutput操作时发生错误(ResourceNotFoundException):找不到作业ID:0_Yskg7YiAD8exUca58f2NMEC_hb7fsoy4arhpYBBkuMHqS__h10ol8_lPYCLc-Qoe1E8PXQso3HZ0usCaG6wzyPtRqb

我认为 CLI 有问题,所以我使用其他 API 再次尝试,但得到了同样的错误。 JobID 完全相同,我不明白为什么会这样?

【问题讨论】:

  • 我尝试正确格式化 json 响应,但 stackoverflow 一直遇到问题.....所以现在全部在一行中 -_-
  • 您确定将 API/CLI 请求发送到 ca-central-1?我猜你是在隐含地将它发送到另一个区域,因为你没有表明你指定了一个区域。冰川地区是独立的,根本没有相互联系。
  • hmm 在我的 aws 配置中有“region = ca-central-1”,我也尝试使用 ca-central-1 传递 region 参数。还是不行:(
  • 删除--account-id - 还是指定实际的account-id?目前尚不清楚问题可能是什么。
  • 我用我的实际帐户 ID 替换了 --account-id - 中的破折号,但它仍然给我同样的错误?

标签: amazon-web-services aws-cli amazon-glacier


【解决方案1】:

对我来说效果很好。这就是我所做的......

启动了一个库存作业:

aws glacier initiate-job --account-id - --vault-name videos --job-parameters '{"Type": "inventory-retrieval"}'

{
    "location": "/123456789012/vaults/videos/jobs/y-a0tzB94kwCuFFeEQhJaxj...HGDu", 
    "jobId": "y-a0tzB94kwCuFFeEQhJaxj...HGDu"
}

列出的工作(需要几个小时才能完成):

aws glacier list-jobs --vault-name videos --account-id -

{
    "JobList": [
        {
            "CompletionDate": "2017-07-17T02:26:51.215Z", 
            "VaultARN": "arn:aws:glacier:ap-southeast-2:123456789012:vaults/videos", 
            "InventoryRetrievalParameters": {
                "Format": "JSON"
            }, 
            "Completed": true, 
            "InventorySizeInBytes": 10096, 
            "JobId": "y-a0tzB94kwCuFFeEQhJaxj...HGDu", 
            "Action": "InventoryRetrieval", 
            "CreationDate": "2017-07-16T22:36:48.751Z", 
            "StatusMessage": "Succeeded", 
            "StatusCode": "Succeeded"
        }
    ]
}

检索到的作业输出:

aws glacier get-job-output --account-id - --vault-name videos --job-id y-a0tzB94kwCuFFeEQhJaxj...HGDu output.json
{
    "status": 200, 
    "acceptRanges": "bytes", 
    "contentType": "application/json"
}

我收到了一个带有我的保管库列表的 JSON 文件。

我的.aws/credentials 文件定义了一个默认区域。

【讨论】:

  • 嗯,这真的很奇怪,我再次尝试了同样的事情,它成功了。作业输出在我创建后存在多长时间?
  • 文档说“作业 ID 在 Amazon Glacier 完成作业后至少 24 小时内不会过期。”
  • 好吧,这对于发生这种情况的原因没有任何意义,但我的意思是下一份工作表现得很好,所以无论如何。谢谢
  • 嗨@JohnRotenstein,我得到了相同的工作输出,但没有档案ID。如何获取档案 ID 的实际列表?
  • @OrestGulman 您确定有数据存储在 Amazon Glacier 服务中吗?请注意,这与使用“Glacier”类在 Amazon S3 中存储数据不同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多