
# 列举已上传的段
#### 功能说明
通过分段上传任务的ID，列举指定桶中已上传的段。
#### 方法定义
```
ObsClient.listParts
```
#### 请求参数
| **字段名**          | **类型**                                                                      | **约束** | **说明**                                                                                                  |
|:---|:---|:---|:---|
| Bucket           | String                                                                      | 必选     | 桶名。                                                                                                     |
| Key              | String                                                                      | 必选     | 对象名。                                                                                                    |
| RequestDate      | String 或 Date | 可选     | 指定请求时间。 说明： 当为String类型时，必须符合ISO8601或RFC822规范。 |
| UploadId         | String                                                                      | 必选     | 分段上传任务的ID。                                                                                              |
| MaxParts         | Number                                                                      | 可选     | 列举已上传段的返回结果最大段数目，即分页时每一页中段数目。                                                                           |
| PartNumberMarker | Number                                                                      | 可选     | 列举已上传段的起始位置，只有Part Number大于该参数的段会被列出。                                                                   |
   
#### 返回结果（InterfaceResult）
| **字段名**         || **类型** | **说明**                                              |
|:--|---|:---|:---|
| RequestId       || String | OBS服务端返回的请求ID。                                      |
| Bucket          || String | 桶名。                                                 |
| Key             || String | 对象名。                                                |
| UploadId        || String | 分段上传任务的ID。                                          |
| PartNumberMarker || String | 列举已上传段的起始位置，与请求中的该参数对应。                             |
| NextPartNumberMarker || String | 下次列举已上传段请求的起始位置。                                    |
| MaxParts        || String | 列举已上传段的返回结果最大段数目，与请求中的该参数对应。                        |
| IsTruncated     || String | 表明本次请求是否返回了全部结果，"true"表示没有返回全部结果；"false"表示已返回了全部结果。 |
| Parts           || Array  | 已上传段列表。                                             |
| - | PartNumber   | String | 段号。                                                 |
| - | LastModified | String | 段的最后上传时间。                                           |
| - | ETag         | String | 段的ETag值。                                            |
| - | Size         | String | 段的大小。                                               |
| Initiator       || Object | 分段上传任务的创建者。                                         |
| - | ID           | String | 创建者的DomainId。                                       |
| Owner           || Object | 和Initiator相同，代表分段上传任务的创建者。                          |
| - | ID           | String | 创建者的DomainId。                                       |
| StorageClass    || String | 待分段上传对象的存储类型。                                       |
   
#### 代码样例
```
obsClient.listParts({
       Bucket:'bucketname',
       Key : 'objectkey',
       UploadId : 'uploadid',
       MaxParts : 10
},function (err, result) {
       if(err){
              console.error('Error-->' + err);
       }else{
              if(result.CommonMsg.Status < 300){
                     console.log('RequestId-->' + result.InterfaceResult.RequestId);
                     console.log('Bucket-->' + result.InterfaceResult.Bucket);
                     console.log('Key-->' + result.InterfaceResult.Key);
                     console.log('UploadId-->' + result.InterfaceResult.UploadId);
                     console.log('PartNumberMarker-->' + result.InterfaceResult.PartNumberMarker);
                     console.log('NextPartNumberMarker-->' + result.InterfaceResult.NextPartNumberMarker);
                     console.log('MaxParts-->' + result.InterfaceResult.MaxParts);
                     console.log('IsTruncated-->' + result.InterfaceResult.IsTruncated);
                     console.log('StorageClass-->' + result.InterfaceResult.StorageClass);
                     console.log('Initiator[ID]-->' + result.InterfaceResult.Initiator['ID']);  
                     console.log('Owner[ID]-->' + result.InterfaceResult.Owner['ID']);
                     for(var i=0;i<result.InterfaceResult.Parts.length;i++){
                           console.log('Part['+i+']:');
                           console.log('PartNumber-->' + result.InterfaceResult.Parts[i]['PartNumber']);
                           console.log('LastModified-->' + result.InterfaceResult.Parts[i]['LastModified']);
                           console.log('ETag-->' + result.InterfaceResult.Parts[i]['ETag']);
                           console.log('Size-->' + result.InterfaceResult.Parts[i]['Size']);
                     }
              }else{
                     console.log('Code-->' + result.CommonMsg.Code);
                     console.log('Message-->' + result.CommonMsg.Message);
              }
       }
});
```
