更新时间:2024-03-05 GMT+08:00

列举桶中已初始化多段任务

功能介绍

用户可以通过本接口查询一个桶中所有的初始化后还未合并以及未取消的多段上传任务。

请求消息样式

GET /?uploads&max-uploads=max HTTP/1.1 
Host: bucketname.obs.region.example.com
Date: date
Authorization: authorization

请求消息参数

该请求可以通过在请求消息中指定参数,查询指定范围的多段上传任务,请求参数说明如表1所示。

表1 请求消息参数

参数名称

描述

是否必选

delimiter

对于名字中包含delimiter的对象的任务,其对象名(如果请求中指定了prefix,则此处的对象名需要去掉prefix)中从首字符至第一个delimiter之间的字符串将作为CommonPrefix在响应中返回。对象名包含CommonPrefix的任务被视为一个分组,作为一条记录在响应中返回,该记录不包含任务的信息,仅用于提示用户该分组下存在多段上传任务。

类型:String

prefix

如果请求中指定了prefix,则响应中仅包含对象名以prefix开始的任务信息。

类型:String

max-uploads

列举的多段任务的最大条目,取值范围为[1,1000],当超出范围时,按照默认的1000进行处理。

类型:Integer

key-marker

列举时返回指定的key-marker之后的多段任务。

类型:String

upload-id-marker

只有和key-marker一起使用才有意义, 列举时返回指定的key-marker的upload-id-marker之后的多段任务。

类型:String

请求消息头

该请求使用公共请求消息头,具体请见表3

请求消息元素

该请求消息中不使用消息元素。

响应消息样式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
HTTP/1.1 status_code
Date: date
Content-Length: length

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ListMultipartUploadsResult xmlns="http://obs.region.example.com/doc/2015-06-30/">
    <Bucket>bucketname</Bucket> 
    <KeyMarker/> 
    <UploadIdMarker/> 
    <NextKeyMarker>nextMarker</NextKeyMarker> 
    <NextUploadIdMarker>idMarker</NextUploadIdMarker> 
    <MaxUploads>maxUploads</MaxUploads> 
    <IsTruncated>true</IsTruncated> 
    <Upload> 
        <Key>key</Key> 
        <UploadId>uploadID</UploadId> 
        <Initiator> 
            <ID>domainID/domainID:userID/userID</ID> 
        </Initiator> 
        <Owner> 
            <ID>ownerID</ID>
        </Owner> 
        <StorageClass>storageclass</StorageClass> 
        <Initiated>initiatedDate</Initiated>  
    </Upload> 
</ListMultipartUploadsResult>

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息中通过消息元素返回多段上传任务,元素的具体意义如表2所示。

表2 响应消息元素

元素名称

描述

ListMultipartUploadsResult

保存List Multipart Upload请求结果的容器。

类型:Container

子节点: Bucket, KeyMarker , UploadIdMarker, NextKeyMarker, NextUploadIdMarker, MaxUploads, Delimiter, Prefix, Upload, CommonPrefixes, IsTruncated。

父节点:None。

Bucket

初始化任务所在的桶名。

类型:String

父节点: ListMultipartUploadsResult。

KeyMarker

列举时的起始对象位置。

类型:String

父节点: ListMultipartUploadsResult。

UploadIdMarker

列举时的起始UploadId位置。

类型:String

父节点: ListMultipartUploadsResult。

NextKeyMarker

如果本次没有返回全部结果,响应请求中将包含NextKeyMarker字段,用于标明接下来请求的KeyMarker值。

类型:String

父节点: ListMultipartUploadsResult。

NextUploadIdMarker

如果本次没有返回全部结果,响应请求中将包含NextUploadIdMarker元素,用于标明接下来请求的UploadMarker值。

类型:String

父节点: ListMultipartUploadsResult。

MaxUploads

返回的最大多段上传任务数目。

类型:Integer

父节点: ListMultipartUploadsResult。

IsTruncated

表明是否本次返回的Multipart Upload结果列表被截断。“true”表示本次没有返回全部结果;“false”表示本次已经返回了全部结果。

类型:Boolean。

父节点: ListMultipartUploadsResult。

Upload

保存Multipart Upload任务信息的容器。

类型:Container

子节点: Key, UploadId, InitiatorOwner, StorageClass, Initiated。

父节点: ListMultipartUploadsResult。

Key

初始化Multipart Upload任务的Object名字。

类型:String

父节点: Upload。

UploadId

Multipart Upload任务的ID。

类型:String

父节点: Upload。

Initiator

Multipart Upload任务的创建者。

子节点: ID。

类型:Container

父节点: Upload。

ID

创建者的DomainId。

类型:String

父节点: Initiator, Owner。

Owner

段的所有者。

类型:Container

子节点: ID

父节点: Upload。

StorageClass

表明待多段上传的对象存储类型。

类型:String

父节点: Upload。

Initiated

Multipart Upload任务的初始化时间。

类型:Date。

父节点: Upload。

ListMultipartUploadsResult.Prefix

请求中带的Prefix。

类型:String

父节点: ListMultipartUploadsResult。

Delimiter

请求中带的Delimiter。

类型:String

父节点: ListMultipartUploadsResult。

CommonPrefixes

请求中带Delimiter参数时,返回消息带CommonPrefixes分组信息。

类型:Container

父节点: ListMultipartUploadsResult。

CommonPrefixes. Prefix

CommonPrefixes分组信息中,表明不同的Prefix。

类型:String

父节点: CommonPrefixes。

错误响应消息

OBS系统对maxUploads进行判断,如果maxUploads不为整数类型或者小于0,OBS返回400 Bad Request。

其他错误已经包含在表2中。

请求示例:不带任何参数列举已初始化的段任务

1
2
3
4
5
6
GET /?uploads HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.example.com
Accept: */*
Date: WED, 01 Jul 2015 04:51:21 GMT
Authorization: OBS UDSIAMSTUBTEST000008:XdmZgYQ+ZVy1rjxJ9/KpKq+wrU0=

响应示例:不带任何参数列举已初始化的段任务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 8DF400000163D405534D046A2295674C
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSDaHP+a+Bp0RI6Mm9XvCOrf7q3qvBQW
Content-Type: application/xml
Date: WED, 01 Jul 2015 04:51:21 GMT
Content-Length: 681

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListMultipartUploadsResult xmlns="http://obs.example.com/doc/2015-06-30/">
  <Bucket>examplebucket</Bucket>
  <KeyMarker/>
  <UploadIdMarker/>
  <Delimiter/>
  <Prefix/>
  <MaxUploads>1000</MaxUploads>
  <IsTruncated>false</IsTruncated>
  <Upload>
    <Key>obj2</Key>
    <UploadId>00000163D40171ED8DF4050919BD02B8</UploadId>
    <Initiator>
      <ID>domainID/b4bf1b36d9ca43d984fbcb9491b6fce9:userID/71f390117351534r88115ea2c26d1999</ID>
    </Initiator>
    <Owner>
      <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
    <Initiated>2015-07-01T02:30:54.582Z</Initiated>
  </Upload>
</ListMultipartUploadsResult>

请求示例:带prefix和delimeter列举已初始化的段任务

例如,用户桶examplebucket中2个段任务,对象名分别为multipart-object001和part2-key02,列举段任务时,设置prefix为“multipart",delimeter设置为object001,列举已初始化的段任务。

GET /?uploads&delimiter=object001&prefix=multipart HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.example.com
Accept: */*
Date: WED, 01 Jul 2015 04:51:21 GMT
Authorization: OBS UDSIAMSTUBTEST000008:XdmZgYQ+ZVy1rjxJ9/KpKq+wrU0=

响应示例:带prefix和delimeter列举已初始化的段任务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 5DEB00000164A27A1610B8250790D703
x-obs-id-2: 32AAAQAAEAABAAAQAAEAABAAAQAAEAABCSq3ls2ZtLDD6pQLcJq1yGITXgspSvBR
Content-Type: application/xml
Date: WED, 01 Jul 2015 04:51:21 GMT
Content-Length: 681
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListMultipartUploadsResult xmlns="http://obs.example.com/doc/2015-06-30/">
  <Bucket>newbucket0001</Bucket>
  <KeyMarker></KeyMarker>
  <UploadIdMarker>
  </UploadIdMarker>
  <Delimiter>object</Delimiter>
  <Prefix>multipart</Prefix>
  <MaxUploads>1000</MaxUploads>
  <IsTruncated>false</IsTruncated>
  <CommonPrefixes>
    <Prefix>multipart-object001</Prefix>
  </CommonPrefixes>
</ListMultipartUploadsResult>