NOS Python SDK实现了NOS对象操作接口,基于此SDK能方便快速地实现Python应用程序来使用NOS的对象存储服务。
- Delete Object —— 删除一个对象
- Delete Multiple Objects —— 用一个HTTP请求删除同一个Bucket中的多个对象
- Get Object —— 读取对象内容
- Head Object —— 获取对象相关元数据信息
- List Objects —— 获取一个桶的对象列表
- Put Object —— 上传一个对象
- Put Object - Copy —— 拷贝一个对象
- Put Object - Move —— 桶内部move一个对象
- Initiate Multipart Upload —— 初始化分块上传
- Upload Part —— 上传一个分块
- Complete Multipart Upload —— 完成分块上传
- Abort Multipart Upload —— 取消分块上传并删除已上传的分块
- List Parts —— 列出已上传的分块
- List Multipart Uploads —— 列出所有执行中的分块上传事件
在调用对象操作接口前需要生成一个nos.Client类的实例。且在调用操作接口时,都有可能抛出异常,可以使用`nos.exceptions.ServiceException`捕获nos服务器异常错误,使用`nos.exceptions.ClientException`捕获nos客户端异常错误。
使用举例
client = nos.Client( access_key_id="string", access_key_secret="string", transport_class=nos.transport.Transport, **kwargs )
参数说明
- access_key_id(string) -- 访问凭证ID。当需要访问的桶属性为Public-read时,可以将该值设置成None。默认值为:None。
- access_key_secret(string) -- 访问凭证密钥。当需要访问的桶属性为Public-read时,可以将该值设置成None。默认值为:None。
- transport_class(class) -- 与NOS服务器进行数据传输的类型,类型中至少需要包含`perform_request`成员函数。默认值为:nos.transport.Transport。
- kwargs -- 其他可选参数,如下。
- end_point(string) -- 与NOS服务器进行数据传输、交互的服务器的主域名。默认为:nos-eastchina1.126.net。
- num_pools(integer) -- HTTP连接池的大小。默认值为:16。
- timeout(integer) -- 连接超时的时间,单位:秒。
- max_retries(integer) -- 当得到HTTP 5XX的服务器错误的响应时,进行重试的次数。默认值为:2。
- retry_backoff_factor(float) -- 重试指数退避因子,多次重试之间的时间间隔为:retry_backoff_factor * (2** 已重试次数) 秒。例如,当设置为0.1时,重试的时间间隔为[0.1s, 0.2s, 0.4s, ...]。默认值为: 0.0。
- enable_ssl(boolean) -- 与NOS服务器进行数据传输、交互时,是否使用HTTPS。默认值为:False,默认使用HTTP。
在程序运行过程中,如果遇到错误,Python SDK会抛出相应的异常。所有异常均属于NOSException类,其下分为两个子类:ClientException、ServiceException。在调用Python SDK接口的时候,捕捉这些异常并打印必要的信息有利于定位问题。
ClientException包含SDK客户端的异常。比如,上传对象时对象名为空,就会抛出该异常。 ClientException类下有如下子类,用于细分客户端异常:
类名 | 抛出异常的原因 |
---|---|
InvalidBucketName | 传入的桶名为空 |
InvalidObjectName | 传入的对象名为空 |
FileOpenModeError | 出入的对象为文件且没有使用二进制文件方式打开 |
XmlParseError | 解析服务端响应的XML内容失败 |
SerializationError | 上传对象序列化失败 |
ConnectionError | 连接服务端异常 |
ConnectionTimeout | 连接服务端超时 |
ServiceException包含NOS服务器返回的异常。当NOS服务器返回4xx或5xx的HTTP错误码时,Python SDK会将NOS Server的响应转换为ServiceException。 ServiceException类下有如下子类,用于细分NOS服务器返回的异常:
类名 | 抛出异常的原因 |
---|---|
MultiObjectDeleteException | 批量删除对象时,存在部分对象无法删除 |
BadRequestError | 服务端返回HTTP 400响应 |
ForbiddenError | 服务端返回HTTP 403响应 |
NotFoundError | 服务端返回HTTP 404响应 |
MethodNotAllowedError | 服务端返回HTTP 405响应 |
ConflictError | 服务端返回HTTP 409响应 |
LengthRequiredError | 服务端返回HTTP 411响应 |
RequestedRangeNotSatisfiableError | 服务端返回HTTP 416响应 |
InternalServerErrorError | 服务端返回HTTP 500响应 |
NotImplementedError | 服务端返回HTTP 501响应 |
ServiceUnavailableError | 服务端返回HTTP 503响应 |
try: resp = client.XXX( bucket=bucket, key=key ) except nos.exceptions.ServiceException as e: print ( 'ServiceException: %s\n' 'status_code: %s\n' 'error_type: %s\n' 'error_code: %s\n' 'request_id: %s\n' 'message: %s\n' ) % ( e, e.status_code, # 错误http状态码 e.error_type, # NOS服务器定义错误类型 e.error_code, # NOS服务器定义错误码 e.request_id, # 请求ID,有利于nos开发人员跟踪异常请求的错误原因 e.message # 错误描述信息 ) except nos.exceptions.ClientException as e: print ( 'ClientException: %s\n' 'message: %s\n' ) % ( e, e.message # 客户端错误信息 )
使用举例
resp = client.delete_object( bucket="string", key="string" )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
使用举例
resp = client.delete_objects( bucket="string", keys=[ "string1", "string2", ... ], quiet=True|False )
参数说明
- bucket(string) -- 桶名。
- objects(list) -- 待删除的对象名称列表。
- quiet(boolean) -- 是否开启安静模式(安静模式不显示具体删除信息)。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "response": xml.etree.ElementTree() # xml.etree.ElementTree类型对象 }
返回值的`response`的字符形式可能如下:
<?xml version="1.0" encoding="UTF-8"?> <DeleteResult> <Deleted> <Key>1.jpg</Key> </Deleted> <Error> <Key>2.jpg</Key> <Code>AccessDenied</Code> <Message>Access Denied</Message> </Error> <Error> <Key>3.jpg</Key> <Code>NoSuchKey</Code> <Message>No Such Key</Message> </Error> </DeleteResult>
注意:下列各项通过xml.etree.ElementTree的成员函数获取具体值时,得到的均为字符串;目前标注的类型为原类型名称,需自行转换。
Element | 描述 |
---|---|
DeleteResult | 多重删除的响应容器元素
类型:容器
|
Deleted | 已被成功删除的容器元素
类型:容器
父节点:DeleteResult
|
Key | 已删除的对象键值
类型:字符串
父节点:Deleted,Error
|
VersionId | 已删除的对象版本号
类型:数字
父节点:Deleted,Error
|
Error | 删除失败的对象版本号
类型:容器
父节点:DeleteResult
|
Code | 删除失败返回的错误码
类型:字符串
父节点:Error
|
Message | 删除失败返回的详细错误描述
类型:字符串
父节点:Error
|
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- response(xml.etree.ElementTree) -- 包含返回信息的xml对象。
使用举例
resp = client.get_object( bucket="string", key="string", **kwargs )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- kwargs -- 其他可选参数,如下。
- range(string) -- 下载指定的数据块,Range Header参考RFC2616。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "content_length": 1024, "content_range": "0-1024/234564", "content_type": "application/octet-stream;charset=UTF-8", "etag": "3adbbad1791fbae3ec908894c4963870", "body": StreamingBody() }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- content_length(integer) -- 返回的数据块的字节数。
- content_range(string) -- 返回的数据块的范围。
- content_type(string) -- 返回的数据块的类型。
- etag(string) -- 对象的哈希值,反应对象内容的更改情况。
- body(StreamingBody) -- 对象数据。
使用举例
resp = client.head_object( bucket="string", key="string" )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "content_length": 1024, "content_type": "application/octet-stream;charset=UTF-8", "etag": "3adbbad1791fbae3ec908894c4963870", "last_modified": "Mon, 23 May 2016 16:07:15 Asia/Shanghai" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- content_length(integer) -- 返回的数据块的字节数。
- content_type(string) -- 返回的数据块的类型。
- etag(string) -- 对象的哈希值,反应对象内容的更改情况。
- last_modified(string) -- 最近一次修改对象的时间。
使用举例
resp = client.list_objects( bucket="string", **kwargs )
参数说明
- bucket(string) -- 桶名。
- kwargs -- 其他可选参数。
- delimiter(string) -- 分界符,用于做groupby操作。
- marker(string) -- 字典序的起始标记,只列出该标记之后的部分。
- limit(integer) -- 限定返回的数量,返回的结果小于或等于该值。取值范围:0-1000,默认:100
- prefix(string) -- 只返回Key以特定前缀开头的那些对象。可以使用前缀把一个桶里面的对象分成不同的组,类似文件系统的目录一样。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "response": xml.etree.ElementTree() # xml.etree.ElementTree类型对象 }
返回值的`response`的字符形式可能如下:
<?xml version="1.0" encoding="UTF-8"?> <ListBucketResult xmlns="http://doc.nos.netease.com/2012-03-01"> <Name>dream</Name> <Prefix>user</Prefix> <MaxKeys>2</MaxKeys> <NextMarker>user/yao</NextMarker> <IsTruncated>true</IsTruncated> <Contents> <Key>user/lin</Key> <LastModified>2012-01-01T12:00:00.000Z</LastModified> <Etag>258ef3fdfa96f00ad9f27c383fc9acce</ Etag> <Size>143663</Size> <StorageClass>Standard</StorageClass> </Contents> <Contents> <Key>user/yao</Key> <LastModified>2012-01-01T12:00:00.000Z</LastModified> < Etag>828ef3fdfa96f00ad9f27c383fc9ac7f</ Etag> <Size>423983</Size> <StorageClass>Standard</StorageClass> </Contents> </ListBucketResult>
注意:下列各项通过xml.etree.ElementTree的成员函数获取具体值时,得到的均为字符串;目前标注的类型为原类型名称,需自行转换。
元素 | 描述 |
---|---|
Contents | 对象元数据,代表一个对象描述
类型:容器
父节点:ListBucketObjects
子节点:Key,LastModified,Size,Etag
|
CommonPrefixes | 只有当指定了delimiter分界符时,才会有这个响应
类型:字符串
父节点:ListBucketObjects
|
delimiter | 分界符
类型:字符串
父节点:ListBucketObjects
|
DisplayName | 对象的拥有者
类型:字符串
父节点:ListBucketObjects.Contents.Owner
|
Etag | 对象的哈希描述
类型:字符串
父节点:ListBucketObjects.Contents
|
ID | 对象拥有者的ID
类型:字符串
父节点:ListBucketObjects.Contents.Owner
|
IsTruncated | 是否截断,如果因为设置了limit导致不是所有的数据集都返回,则该值设置为true
类型:布尔值
父节点:ListBucketObjects
|
Key | 对象的名称
类型:字符串
父节点:ListBucketObjects.Contents
|
LastModified | 对象最后修改日期和时间
类型:日期 格式:yyyy-MM-dd"T"HH:mm:ss.SSSZ
父节点:ListBucketObjects.Contents
|
Marker | 列表的起始位置,等于请求参数设置的Marker值
类型:字符串
父节点:ListBucketObjects
|
NextMark | 下一次分页的起点
类型:字符串
父节点:ListBucketObjects
|
MaxKeys | 请求的对象个数限制
类型:数字
父节点:ListBucketObjects
|
Name | 请求的桶名称
类型:字符串
父节点:ListBucketObjects
|
Owner | 桶拥有者
类型:容器
父节点:ListBucketObjects.contents | CommonPrefixes
子节点:DisplayName|ID
|
Prefix | 请求的对象的Key的前缀
类型:字符串
父节点:ListBucketObjects
|
Size | 对象的大小字节数
类型:数字
父节点:ListBucketObjects.contents
|
StorageClasss | 存储级别
类型:字符串
父节点:ListBucketObjects.contents
|
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- response(xml.etree.ElementTree) -- 包含返回信息的xml对象。
使用举例
resp = client.put_object( bucket="string", key="string", body=serializable_object, **kwargs )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- body(serializable_object) -- 对象内容,可以是文件句柄、字符串、字典等任何可序列化的对象。
- kwargs -- 其他可选参数。
- meta_data(dict) -- 用户自定义的元数据,通过键值对的形式上报,键名和值均为字符串,且键名需以`x-nos-meta-`开头。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "etag": "fbacf535f27731c9771645a39863328" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的id号。
- etag(string) -- 对象的哈希值,反应对象内容的更改情况。
使用举例
resp = client.copy_object( src_bucket="string", src_key="string", dest_bucket="string", dest_key="string" )
参数说明
- src_bucket(string) -- 来源对象的桶名。
- src_key(string) -- 来源对象的对象名。
- dest_bucket(string) -- 目标对象的桶名。
- dest_key(string) -- 目标对象的对象名。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
使用举例
resp = client.move_object( src_bucket="string", src_key="string", dest_bucket="string", dest_key="string" )
参数说明
- src_bucket(string) -- 来源对象的桶名。
- src_key(string) -- 来源对象的对象名。
- dest_bucket(string) -- 目标对象的桶名。
- dest_key(string) -- 目标对象的对象名。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
使用举例
resp = client.create_multipart_upload( bucket="string", key="string", **kwargs )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- kwargs -- 其他可选参数。
- meta_data(dict) -- 用户自定义的元数据,通过键值对的形式上报,键名和值均为字符串,且键名需以`x-nos-meta-`开头。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "response": xml.etree.ElementTree() # xml.etree.ElementTree类型对象 }
返回值的`response`的字符形式可能如下:
<?xml version="1.0" encoding="UTF-8"?> <InitiateMultipartUploadResult> <Bucket>filestation</Bucket> <Key>movie.avi</Key> <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3S5tMnRzIHVwbG9hZA</UploadId> </InitiateMultipartUploadResult>
注意:下列各项通过xml.etree.ElementTree的成员函数获取具体值时,得到的均为字符串;目前标注的类型为原类型名称,需自行转换。
元素 | 描述 |
---|---|
InitiateMultipartUploadResult | 响应容器元素
类型:容器
子节点:Key,Bucket
|
Key | 对象的Key
类型:字符串
父节点:InitiateMultipartUploadResult
|
Bucket | 对象的桶
类型:字符串
父节点:InitiateMultipartUploadResult
|
UploadId | 分块上传的ID,用这个ID来作为各块属于这个文件的标识
类型:字符串
父节点:InitiateMultipartUploadResult
|
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的id号。
- response(xml.etree.ElementTree) -- 包含返回信息的xml对象。
使用举例
resp = client.upload_part( bucket="string", key="string", part_num=2, upload_id="string", body=serializable_object )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- part_num(integer) -- 数据分块编码号(1-10000)。
- upload_id(string) -- 数据上传标识号。
- body(serializable_object) -- 对象内容,可以是文件句柄、字符串、字典等任何可序列化的对象。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "etag": "fbacf535f27731c9771645a39863328" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的id号。
- etag(string) -- 对象的哈希值,反应对象内容的更改情况。
在将所有数据Part都上传完成后,必须调用Complete Multipart Upload API来完成整个文件的Multipart Upload。在执行该操作时,用户必须提供所有有效的数据Part的列表(包括part号码和ETAG);NOS收到用户提交的Part列表后,会逐一验证每个数据Part的有效性。当所有的数据Part验证通过后,NOS将把这些数据part组合成一个完整的Object。 使用x-nos-Object-md5扩展头发送对象的MD5值,用作去重库的建立(Put Object使用Content-MD5建立对象去重库)。
使用举例
resp = client.complete_multipart_upload( bucket="string", key="string", upload_id="string", info=[ { "part_num": 1, "etag": "string" }, { "part_num": 2, "etag": "string" }, ... ], **kwargs )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- upload_id(string) -- 数据上传标识号。
- info(list) -- 所有有效的数据Part的列表(包括part号码和etag)
- kwargs -- 其他可选参数,如下。
- object_md5(string) -- 发送对象的md5值,用于后续去重。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "response": xml.etree.ElementTree() # xml.etree.ElementTree类型对象 }
返回值的`response`的字符形式可能如下:
<?xml version="1.0" encoding="UTF-8"?> <CompleteMultipartUploadResult xmlns=""> <Location> filestation.nos.netease.com/movie.avi</Location> <Bucket>filestation </Bucket> <Key>movie.avi </Key> <ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag> </CompleteMultipartUploadResult>
注意:下列各项通过xml.etree.ElementTree的成员函数获取具体值时,得到的均为字符串;目前标注的类型为原类型名称,需自行转换。
元素 | 描述 |
---|---|
Bucket | 新创建对象所在的桶
类型:字符串
父节点:CompleteMultipartUploadResult
|
CompleteMultipartUploadResult | 响应容器元素
类型:容器
子节点:Location,Bucket,Key,ETag
|
ETag | 新创建的对象的Entity Tag
类型:字符串
父节点:CompleteMultipartUploadResult
|
Key | 新创建对象的Key
类型:字符串
父节点:CompleteMultipartUploadResult
|
Location | 新创建的这个对象的资源定位URL
类型:字符串
父节点:CompleteMultipartUploadResult
|
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- response(xml.etree.ElementTree) -- 包含返回信息的xml对象。
使用举例
resp = client.abort_multipart_upload( bucket="string", key="string", upload_id="string" )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- upload_id(string) -- 数据上传标识号。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240" }
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
使用举例
resp = client.list_parts( bucket="string", key="string", upload_id="string", **kwargs )
参数说明
- bucket(string) -- 桶名。
- key(string) -- 对象名。
- upload_id(string) -- 数据上传标识号。
- kwargs -- 其他可选参数,如下。
- limit(integer) -- 限制响应中返回的记录个数。取值范围:0-1000,默认1000。
- part_number_marker(string) -- 分块号的界限,只有更大的分块号会被列出来。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "response": xml.etree.ElementTree() # xml.etree.ElementTree类型对象 }
返回值的`response`的字符形式可能如下:
<?xml version="1.0" encoding="UTF-8"?> <ListPartsResult xmlns=" "> <Bucket>example-Bucket</Bucket> <Key>example-Object</Key> <UploadId>23r54i252358235332523f23 </UploadId> <Owner> <ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID> <DisplayName>someName</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> <PartNumberMarker>1</PartNumberMarker> <NextPartNumberMarker>3</NextPartNumberMarker> <MaxParts>2</MaxParts> <IsTruncated>true</IsTruncated> <Part> <PartNumber>2</PartNumber> <LastModified>2010-11-10T20:48:34.000Z</LastModified> <ETag>"7778aef83f66abc1fa1e8477f296d394"</ETag> <Size>10485760</Size> </Part> <Part> <PartNumber>3</PartNumber> <LastModified>2010-11-10T20:48:33.000Z</LastModified> <ETag>"aaaa18db4cc2f85cedef654fccc4a4x8"</ETag> <Size>10485760</Size> </Part> </ListPartsResult>
注意:下列各项通过xml.etree.ElementTree的成员函数获取具体值时,得到的均为字符串;目前标注的类型为原类型名称,需自行转换。
元素 | 描述 |
---|---|
ListPartsResult | 列出已上传块信息
类型:容器
子节点:Bucket、Key、UploadId、Owner、StorageClass、PartNumberMarker、NextPartNumberMarker、MaxParts, IsTruncated、Part
|
Bucket | 桶的名称
类型: String
父节点: ListPartsResult
|
Key | 对象的Key
类型: String
父节点: ListPartsResult
|
UploadId | 分块上传操作的ID
类型: String
父节点: ListPartsResult
|
ID | 对象拥有者的ID
类型: String
父节点: Owner
|
DisplayName | 对象的拥有者.
类型: String
父节点: Owner
|
Owner | 桶拥有者的信息
子节点:ID, DisplayName
类型: 容器
父节点: ListPartsResult
|
StorageClass | 存储级别.
类型: String
父节点: ListPartsResult
|
PartNumberMarker | 上次List操作后的Part number
类型: Integer
父节点: ListPartsResult
|
NextPartNumberMarker | 作为后续List操作的part-number-marker
类型: Integer
父节点: ListPartsResult
|
MaxParts | 响应允许返回的的最大part数目
类型: Integer
父节点: ListPartsResult
|
IsTruncated | 是否截断,如果因为设置了limit导致不是所有的数据集都返回了,则该值设置为true
类型: Boolean
父节点: ListPartsResult
|
Part | 列出相关part信息
子节点:PartNumber, LastModified, ETag, Size
类型: String
父节点: ListPartsResult
|
PartNumber | 识别特定part的一串数字
类型: Integer
父节点: Part
|
LastModified | 该part上传的时间
类型: Date
父节点: Part
|
ETag | 当该part被上传时返回
类型: String
父节点: Part
|
Size | 已上传的 part数据的大小.
类型: Integer
父节点: Part
|
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- response(xml.etree.ElementTree) -- 包含返回信息的xml对象。
使用举例:
resp = client.list_multipart_uploads( bucket="string", **kwargs )
参数说明
- bucket(string) -- 桶名。
- kwargs -- 其他可选参数,如下。
- limit(integer) -- 限制响应中返回的记录个数。取值范围:0-1000,默认1000。
- key_marker(string) -- 指定某一uploads key,只有大于该key-marker的才会被列出。
返回值举例
{ "x_nos_request_id": "17b21e42ac11000001390ab891440240", "response": xml.etree.ElementTree() # xml.etree.ElementTree类型对象 }
返回值的`response`的字符形式可能如下:
<?xml version="1.0" encoding="UTF-8"?> <ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Bucket>Bucket</Bucket> <NextKeyMarker>my-movie.m2ts</NextKeyMarker> <Upload> <Key>my-divisor</Key> <UploadId>XMgbGlrZSBlbHZpbmcncyBub3QgaGF2aW5nIG11Y2ggbHVjaw</UploadId> <Owner> <ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID> <DisplayName>OwnerDisplayName</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Upload> <Upload> <Key>my-movie.m2ts</Key> <UploadId>VXBsb2FkIElEIGZvciBlbHZpbcyBteS1tb3ZpZS5tMnRzIHVwbG9hZA</UploadId> <Owner> <ID>b1d16700c70b0b05597d7acd6a3f92be</ID> <DisplayName>OwnerDisplayName</DisplayName> </Owner> <StorageClass>STANDARD</StorageClass> </Upload> </ListMultipartUploadsResult>
注意:下列各项通过xml.etree.ElementTree的成员函数获取具体值时,得到的均为字符串;目前标注的类型为原类型名称,需自行转换。
元素 | 描述 |
---|---|
ListMultipartUploadsResult | 响应容器元素
类型:容器
子节点:Bucket,KeyMarker,Upload,NextKeyMarker, owner
|
Bucket | 对象的桶
类型:字符串
父节点:ListMultipartUploadsResult
|
NextKeyMarker | 作为后续查询的key-marker
类型:String
父节点:ListMultipartUploadsResult
|
IsTruncated | 是否截断,如果因为设置了limit导致不是所有的数据集都返回了,则该值设置为true
类型:Boolean
父节点: ListMultipartUploadsResult
|
Upload | 类型:容器
子节点:Key,UploadId
父节点:ListMultipartUploadsResult
|
Key | 对象的Key
类型:字符串
父节点:Upload
|
UploadId | 分块上传操作的ID
类型String
父节点:Upload
|
ID | 对象拥有者的ID
类型: String
父节点: Owner
|
DisplayName | 对象的拥有者
类型: String
父节点: Owner
|
Owner | 桶拥有者的信息
类型:容器
子节点:DisplayName|ID
父节点:Upload
|
StorageClass | 存储级别
类型: String
父节点: Upload
|
Initiated | 该分块上传操作被初始化的时间
类型:Date
父节点: Upload
|
ListMultipartUploadsResult.Prefix | 当请求中包含了prefix参数时,响应中会填充这一prefix
类型:String
父节点: ListMultipartUploadsResult
|
返回值说明 返回值为字典类型
- x_nos_request_id(string) -- 唯一定位一个请求的ID号。
- response(xml.etree.ElementTree) -- 包含返回信息的xml对象。