开发者社区> 问答> 正文

如何下载Job Output



描述


此操作用于下载已经完成的Job结果。Job类型为archive-retrieval ,则可下载内容为Archive数据;Job类型为inventory-retrieval,则可下载内容为指定Vault下的Archive列表,该Archive列表数据是由系统每天定期更新生成的,不是实时数据。支持带Range(数据范围)的下载,不指定范围则返回整个Job结果。Range的格式参考下面“请求头部”的说明,如果请求的Range不符合范围规范,会返回错误。Job自准备完成,保留24个小时的有效期,超出以后,Job不可再访问。pull-from-oss,push-to-oss类型Job不能调用该接口,否则会报参数错误。

请求参数




请求头部

名称是否必须描述
Range下载时,可以指定要下载的范围,格式为”StartByte-EndByte”,StartByte必须能够被1MB整除;EndBytes加1,必须能够被1MB或Job Output总字节数整除,如bytes=0-1048575。对于archive-retrieval Job来说,该范围是相对于初始化Job任务时指定的RetrievalByteRange。如果任务输出量很大,则您可以使用Range请求头部来取回输出的一部分。这样,您能够以较小的字节区块下载整个输出。例如,假设您有1GB的Job Output需要下载,您决定一次下载128MB数据区块,则总共需要八个Job Output下载请求。您将使用以下流程下载任务输出:
  1. 通过使用Range请求头部指定相应的字节范围来下载128MB输出区块。
  2. 对输出数据的所有八个128MB区块重复执行步骤1,每次都指定相应的字节范围。

其他公共请求头部参见2.4.1

请求体




返回头部

名称描述
Content-Length下载数据的长度,以字节为单位
Content-Range如果只下载了一部分,则响应会提供返回的字节范围。如bytes=0-1048575/8388608表示从8MB的Job Output返回前1MB。
Content-Type内容类型取决于任务输出是Archive还是Vault列表内容。
  • 对于Archive数据,Content-Type为”application/octet-stream”。
  • 对于Vault列表内容,以JSON格式返回,Content-Type为”application/json”。
x-oas-tree-etag对于archive-retrieval类型的Job,在Job指定范围满足tree-hash树对齐(2.5.4)条件下,归档存储会返回tree-hash校验码;如果没有对齐则无此头部。对于inventory-retrieval类型Job,无此头部。

其他公共返回头部参见2.4.2

返回体


如果Job类型是archive-retrieval,则返回体为下载的Archive数据
如果Job类型是inventory-retrieval,则有如下字段的输出:
  • [backcolor=transparent]VaultId

Vault的ID
  • [backcolor=transparent]InventoryDate

Vault上次更新信息缓存的GMT日期和时间,信息由归档存储系统每天定期更新
  • [backcolor=transparent]ArchiveList

Archive元数据数组。数组中的每个数据元均表示Vault中包含的一个Archive的元数据,元数据的内容由以下的字段组成
  • [backcolor=transparent]ArchiveDescription

Archive描述
  • [backcolor=transparent]ArchiveId

Archive的ID
  • [backcolor=transparent]ArchiveTreeEtag

Archive的tree-hash校验码
  • [backcolor=transparent]CreationDate

创建Archive的GMT日期和时间
  • [backcolor=transparent]Size

Archive大小(以字节为单位)

示例


[backcolor=transparent]如下是archive-retrieval Job 请求与返回示例
请求示例 GET /vaults/[VaultId]/jobs/[JobID]/output HTTP/1.1
Host: cn-hangzhou.oas.aliyuncs.com
Date: Tue, 25 Mar 2014 12:00:00 GMT
x-oas-version: 2014-01-01
Authorization: [SignatureValue]


返回示例 HTTP/1.1 206 Partial Content
x-oas-request-id: [RequestId]
Date: Tue, 25 Mar 2014 12:00:00 GMT
x-oas-tree-etag: F0C9A541B382F8820D3D19D8E8343A26
Content-Type: application/octet-stream
Content-Length: 1024


[backcolor=transparent]如下是archive-retrieval Job 部分段的请求与返回示例
请求示例 GET /vaults/[VaultId]/jobs/[JobID]/output HTTP/1.1
Host: cn-hangzhou.oas.aliyuncs.com
Date: Tue, 25 Mar 2014 12:00:00 GMT
Range: bytes=0-999
x-oas-version: 2014-01-01
Authorization: [SignatureValue]


返回示例 HTTP/1.1 206 Partial Content
x-oas-request-id: [RequestId]
Date: Tue, 25 Mar 2014 12:00:00 GMT
x-oas-tree-etag: E0706E072A00E7BBFDC52AEAEE53E428
Content-Range: bytes 0-999/1024
Content-Type: application/octet-stream
Content-Length: 1000


[backcolor=transparent]如下是inventory-retrieval Job的请求与返回示例
请求示例 GET /vaults/[VaultId]/jobs/[JobID]/output HTTP/1.1
Host: cn-hangzhou.oas.aliyuncs.com
Date: Tue, 25 Mar 2014 12:10:00 GMT
x-oas-version: 2014-01-01
Authorization: [SignatureValue]


返回示例 HTTP/1.1 200 OK
x-oas-request-id: [RequestId]
Date: Tue, 25 Mar 2014 12:10:00 GMT
Content-Type: application/json
Content-Length: 906
{
  "VaultId": "92883B3F278B8EA15CC99EA8763EA129",
  "InventoryDate": "Tue, 25 Mar 2014 12:02:00 GMT",
  "ArchiveList":
  [{
      "ArchiveId": "691F43AA453445E48E4FB0A151D7C2F4AA33F44F6B463EA308645C9DCC3D01A318F36DC44B4AC7EC7EDDF0B9210E1924",
      "ArchiveTreeEtag": "EEBAACFD27EBC277174D7F160F1864B7",
      "ArchiveDescription": "MyArchive1",
      "CreationDate": "Tue, 25 Mar 2014 12:02:00 GMT",
      "Size": 2140123
    },
    {
      "ArchiveId": "F924432E0616433B966F0D22867B247ECFA3C5317C5177E45A0A24A1BCA1494B772A12DE0D64D16BC2D4D59C721E3679",
      "ArchiveTreeEtag": "95FEAC48205C7BC37D9B4AE84E957B0D",
      "ArchiveDescription": "MyArchive2",
      "CreationDate": "Tue, 25 Mar 2014 12:02:00 GMT",
      "Size": 2140123
  }]
}

展开
收起
云栖大讲堂 2017-10-26 14:15:27 2027 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
Using Hadoop to build a Data Quality Service for both real-time and batch data 立即下载
Show Me The Money! Cost & Resource Tracking for Hadoop & Storm 立即下载
Monitoring the Dynamic Resource Usage of Scala and Python Spark Jobs in Yarn 立即下载