npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

nos-nodejs-sdk

v1.0.0

Published

NOS Node.js SDK实现了NOS对象操作接口,基于此SDK能方便快速地实现JavaScript应用程序来使用NOS的对象存储服务。

Downloads

10

Readme

NOS Node.js SDK

NOS Node.js SDK实现了NOS对象操作接口,基于此SDK能方便快速地实现JavaScript应用程序来使用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 —— 列出所有执行中的分块上传事件

接口实现

在调用对象操作接口前需要如下步骤:
1.引入operations模块(var NOSClient = require('./operations'))
2.新建 nosclient 对象 (nosclient = new NOSClient())
3.设定nosclient对象的 host port accessId secretKey

 nosclient.setAccessId('accessId')  
 nosclient.setSecretKey('secretKey')  
 nosclient.setHost('localhost')  
 nosclient.setPort('8500')  

4.调用nosclient对象的各个方法发送不同的请求,第一个参数是map,第二个参数是一个回调函数

 nosclient.delete_object({bucket:'bucket',key:'b.txt'},func)

关于第二个参数,即回调函数,是一个异步函数,会在接收到响应的时候回调,该函数有如下形式:

var func = function(res){
   //可以从res中获取响应的statusCode,headers以及body,然后由用户自由作相应处理
   util.log('STATUS: ' + res.statusCode);    //获取statusCode
   util.log('HEADERS: ' + util.inspect(res.headers));  //获取headers
   res.setEncoding('utf8');
   res.on('data', function(chunk){
       util.log('BODY: ' + chunk);      //body的获取需要放在回调函数中
   });
   res.on('error', function(err){
       util.log('RESPONSE ERROR: ' + err);
   });
}  

对象操作接口

Delete Object

使用举例

nosclient.delete_object({bucket:'bucket',key:'b.txt'},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。

返回值举例

18 Jul 08:24:41 - STATUS: 200
18 Jul 08:24:41 - HEADERS: { 
'x-nos-request-id': 'e2f97ce70af100000155fb63f9fc15fb',
  'x-nos-version-id': '0',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
  • x_nos_request_id(string) -- 唯一定位一个请求的ID号。

Delete Multiple Objects

使用举例

nosclient.delete_objects(
    {bucket:'bucket',
    keys:[{Key:'b.txt'},{Key:'c.txt'}],
    quiet:'False'})

参数说明

  • bucket(string) -- 桶名。
  • keys(array) -- 待删除的对象名称列表,是一个数组,每个元素是一个键值对
  • quiet(boolean) -- 是否开启安静模式(安静模式不显示具体删除信息)。

返回值举例

18 Jul 08:29:27 - STATUS: 200
18 Jul 08:29:27 - HEADERS: { 
'x-nos-request-id': 'ab6f6cce0af100000155fb68571115fb',
  'content-type': 'application/xml; charset=UTF-8',
  'content-length': '55',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
18 Jul 08:29:27 - BODY: 
<?xml version="1.0" encoding="UTF-8"?>
<DeleteResult/>

返回值的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>
  • DeleteResult 多重删除的响应容器元素 类型:容器

  • Deleted 已被成功删除的容器元素 类型:容器 父节点:DeleteResult

  • Key 已删除的对象键值 类型:字符串 父节点:Deleted,Error

  • Error 删除失败的对象版本号 类型:容器 父节点:DeleteResult

  • Code 删除失败返回的错误码 类型:字符串 父节点:Error

  • Message 删除失败返回的详细错误描述 类型:字符串 父节点:Error

Get Object

使用举例

nosclient.get_object({bucket:'bucket',key:'b.txt'},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • 其他可选参数,如下。
    • range(string) -- 下载指定的数据块,Range Header参考RFC2616。
    • if_modified_since(datetime) -- 指定时间,只有当指定时间之后做过修改操作才返回这个对象。

返回值举例

18 Jul 08:35:00 - STATUS: 200
18 Jul 08:35:00 - HEADERS: { 
'x-nos-request-id': 'aa2402d20af100000155fb6d6cd915fb',
  'content-type': 'application/octet-stream; charset=UTF-8',
  etag: '926d74ef88054b6586a5530c5c6606b3',
  'content-disposition': 'inline; filename="c.txt"',
  'last-modified': 'Mon, 18 Jul 2016 08:33:12 Asia/Shanghai',
  'cache-control': 'no-cache',
  'content-length': '18',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
18 Jul 08:35:00 - BODY: 
今天天气很热

返回值说明

  • x_nos_request_id(string) -- 唯一定位一个请求的ID号。
  • content_length(integer) -- 返回的数据块的字节数。
  • content_range(string) -- 返回的数据块的范围。
  • content_type(string) -- 返回的数据块的类型。
  • etag(string) -- 对象的哈希值,反应对象内容的更改情况。
  • body(StreamingBody) -- 对象数据。

Head Object

使用举例

nosclient.head_object({bucket:'bucket',key:'b.txt'},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • 其他可选参数,如下。
    • range(string) -- 下载指定的数据块,Range Header参考RFC2616。
    • if_modified_since(datetime) -- 指定时间,只有当指定时间之后做过修改操作才返回这个对象。

返回值举例

18 Jul 08:45:10 - STATUS: 200
18 Jul 08:45:10 - HEADERS: { 'x-nos-request-id': '346251790af100000155fb76baac15fb',
  etag: '926d74ef88054b6586a5530c5c6606b3',
  'content-length': '18',
  'last-modified': 'Mon, 18 Jul 2016 08:33:12 Asia/Shanghai',
  'content-type': 'application/octet-stream',
  'cache-control': 'no-cache',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

返回值说明 返回值为字典类型

  • x_nos_request_id(string) -- 唯一定位一个请求的ID号。
  • content_length(integer) -- 返回的数据块的字节数。
  • content_type(string) -- 返回的数据块的类型。
  • last_modified(string) -- 最近一次修改对象的时间。

List Objects

使用举例

nosclient.list_objects({bucket:'bucket'},func)

参数说明

  • bucket(string) -- 桶名。
  • kwargs -- 其他可选参数。
    • delimiter(string) -- 分界符,用于做groupby操作。
    • marker(string) -- 字典序的起始标记,只列出该标记之后的部分。
    • limit(integer) -- 限定返回的数量,返回的结果小于或等于该值。取值范围:0-1000,默认:100
    • prefix(string) -- 只返回Key以特定前缀开头的那些对象。可以使用前缀把一个桶里面的对象分成不同的组,类似文件系统的目录一样。

返回值举例

18 Jul 08:49:31 - STATUS: 200
18 Jul 08:49:31 - HEADERS: { 'x-nos-request-id': 'db9524a10af100000155fb7ab73d15fb',
  'content-type': 'application/xml; charset=UTF-8',
  'content-length': '1343',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
18 Jul 08:49:31 - BODY: <?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult>
  <Name>bucket</Name>
  <Prefix></Prefix>
  <Marker></Marker>
  <MaxKeys>100</MaxKeys>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>a.txt</Key>
    <LastModified>2016-07-18T08:49:03 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>b.txt</Key>
    <LastModified>2016-07-18T08:49:07 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>c.txt</Key>
    <LastModified>2016-07-18T08:33:12 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>d.txt</Key>
    <LastModified>2016-07-18T08:48:59 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>nimawangjiao</Key>
    <LastModified>2016-07-15T09:56:49 +0800</LastModified>
    <ETag>12be091bd1197071aefd965f8223301b</ETag>
    <Size>106</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
</ListBucketResult>

返回值的response的字符形式可能如下:

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult>
  <Name>bucket</Name>
  <Prefix></Prefix>
  <Marker></Marker>
  <MaxKeys>100</MaxKeys>
  <IsTruncated>false</IsTruncated>
  <Contents>
    <Key>a.txt</Key>
    <LastModified>2016-07-18T08:49:03 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>b.txt</Key>
    <LastModified>2016-07-18T08:49:07 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>c.txt</Key>
    <LastModified>2016-07-18T08:33:12 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>d.txt</Key>
    <LastModified>2016-07-18T08:48:59 +0800</LastModified>
    <ETag>926d74ef88054b6586a5530c5c6606b3</ETag>
    <Size>18</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
  <Contents>
    <Key>nimawangjiao</Key>
    <LastModified>2016-07-15T09:56:49 +0800</LastModified>
    <ETag>12be091bd1197071aefd965f8223301b</ETag>
    <Size>106</Size>
    <StorageClass>archive-standard</StorageClass>
  </Contents>
</ListBucketResult>
  • 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对象。

Put Object

使用举例

nosclient.put_object({
           bucket:'bucket',
           key:'d.txt',
           body:new Buffer('information')},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • body(serializable_object) -- 对象内容,请传入一个Buffer对象
  • kwargs -- 其他可选参数。
    • storage_class(string) -- 对象的存储级别,有效值如下,默认standard
      • standard(标准存储,对应三备份,耐久性高)
      • archive-standard(大容量归档存储三备份)
      • archive-cheap(大容量归档存储两备份)
      • archive-trivial(大容量归档存储单备份)
    • meta_data(dict) -- 用户自定义的元数据,通过键值对的形式上报,键名和值均为字符串,且键名需以x-nos-meta-开头。

返回值举例

18 Jul 08:58:35 - STATUS: 200
18 Jul 08:58:35 - HEADERS: { 'x-nos-request-id': '2aa8555c0af100000155fb83034c15fb',
  etag: 'b1335fbca4c89d12719cf99fdcab707e',
  'x-nos-object-name': 'd.txt',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

返回值说明

  • x_nos_request_id(string) -- 唯一定位一个请求的id号。
  • etag(string) -- 对象的哈希值,反应对象内容的更改情况。

Put Object - Copy

使用举例

nosclient.copy_object({src_bucket:'bucket',
    src_key:'nimawangjiao',
    dest_bucket:'bucket2',
    dest_key:'q.txt'},func)

参数说明

  • src_bucket(string) -- 来源对象的桶名。
  • src_key(string) -- 来源对象的对象名。
  • dest_bucket(string) -- 目标对象的桶名。
  • dest_key(string) -- 目标对象的对象名。

返回值举例

18 Jul 09:09:52 - STATUS: 200
18 Jul 09:09:52 - HEADERS: { 'x-nos-request-id': 'aa1c14690af100000155fb8d577415fb',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

返回值说明 返回值为字典类型

  • x_nos_request_id(string) -- 唯一定位一个请求的ID号。

Move Object

使用举例

nosclient.move_object({
      src_bucket:'bucket2',
      src_key:'q.txt',
      dest_bucket:'bucket2',
      dest_key:'m.txt'},func)

参数说明

  • src_bucket(string) -- 来源对象的桶名。
  • src_key(string) -- 来源对象的对象名。
  • dest_bucket(string) -- 目标对象的桶名。
  • dest_key(string) -- 目标对象的对象名。

返回值举例

18 Jul 09:13:34 - STATUS: 200
18 Jul 09:13:34 - HEADERS: { 
'x-nos-request-id': '94c462780af100000155fb90a20515fb',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

返回值说明

  • x_nos_request_id(string) -- 唯一定位一个请求的ID号。

Initiate Multipart Upload

使用举例

nosclient.create_multipart_upload({
      bucket:'bucket',
      key:'d.txt',
      meta_data:{'x-nos-meta-hell':'hello'}},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • 其他可选参数。
    • storage_class(string) -- 对象的存储级别,有效值如下,默认standard
      • standard(标准存储,对应三备份,耐久性高)
      • archive-standard(大容量归档存储三备份)
      • archive-cheap(大容量归档存储两备份)
      • archive-trivial(大容量归档存储单备份)
    • meta_data(dict) -- 用户自定义的元数据,通过键值对的形式上报,键名和值均为字符串,且键名需以x-nos-meta-开头。

返回值举例

18 Jul 09:17:49 - STATUS: 200
18 Jul 09:17:49 - HEADERS: { 'x-nos-request-id': 'a39843610af100000155fb949f8115fb',
  'content-type': 'application/xml; charset=UTF-8',
  'content-length': '193',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
18 Jul 09:17:49 - BODY: <?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult>
  <Bucket>bucket2</Bucket>
  <Key>d.txt</Key>
  <UploadId>4688046693530018081</UploadId>
</InitiateMultipartUploadResult>

返回值的response的字符形式可能如下:

<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult>
    <Bucket>filestation</Bucket>
    <Key>movie.avi</Key>
    <UploadId>VXBsb2FkIElEIGZvciA2aWWpbmcncyBteS1tb3S5tMnRzIHVwbG9hZA</UploadId>
</InitiateMultipartUploadResult>
  • InitiateMultipartUploadResult 响应容器元素 类型:容器 子节点:Key,Bucket

  • Key 对象的Key 类型:字符串 父节点:InitiateMultipartUploadResult

  • Bucket 对象的桶 类型:字符串 父节点:InitiateMultipartUploadResult

  • UploadId 分块上传的ID,用这个ID来作为各块属于这个文件的标识 类型:字符串 父节点:InitiateMultipartUploadResult

返回值说明 返回值为字典类型

  • x_nos_request_id(string) -- 唯一定位一个请求的id号。
  • response(xml.etree.ElementTree) -- 包含返回信息的xml对象。

Upload Part

使用举例

nosclient.upload_part({
        bucket:'bucket',
        key:'d.txt',
        part_num:1,
        upload_id:'4688949732940019989', (此处不能省略引号)
        body:new Buffer('here must larger than 16k')},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • part_num(integer) -- 数据分块编码号(1-10000)。
  • upload_id(string) -- 数据上传标识号。
  • body(serializable_object) -- 对象内容,可以是文件句柄、字符串、字典等任何可序列化的对象。

返回值举例

18 Jul 09:21:19 - STATUS: 200
18 Jul 09:21:19 - HEADERS: { 'x-nos-request-id': 'af253f210af100000155fb97d3ad15fb',
  etag: 'ff9360dc18c5e09a80db8f0aa115d52c',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

返回值说明

  • x_nos_request_id(string) -- 唯一定位一个请求的id号。
  • etag(string) -- 对象的哈希值,反应对象内容的更改情况。

Complete Multipart Upload

在将所有数据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建立对象去重库)。

使用举例

nosclient.complete_multipart_upload({
         bucket:'bucket',
         key:'d.txt',
         upload_id:'4688949732940019989',
         info:[{PartNumber:'1',ETag : 'ff9360dc18c5e09a80db8f0aa115d52c'}]},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • upload_id(string) -- 数据上传标识号。
  • info(list) -- 所有有效的数据Part的列表,传入的是一个数组,数组元素是一个map,map中的key-value规则如上例所示
  • kwargs -- 其他可选参数,如下。
    • object_md5(string) -- 发送对象的md5值,用于后续去重。

返回值举例

18 Jul 09:21:19 - STATUS: 200
18 Jul 09:21:19 - HEADERS: { 'x-nos-request-id': 'af253f210af100000155fb97d3ad15fb',
  etag: 'ff9360dc18c5e09a80db8f0aa115d52c',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

<?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>

返回值的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>
  • 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对象。

Abort Multipart Upload

使用举例

nosclient.abort_multipart_upload({
        bucket:'bucket',
        key:'d.txt',
        upload_id:'4688949732940019989'},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • upload_id(string) -- 数据上传标识号。

返回值举例

18 Jul 09:31:10 - STATUS: 200
18 Jul 09:31:10 - HEADERS: { 'x-nos-request-id': 'f381b02c0af100000155fba0d89e15fb',
  'content-length': '0',
  connection: 'close',
  server: 'Jetty(6.1.11)' }

返回值说明 返回值为字典类型

  • x_nos_request_id(string) -- 唯一定位一个请求的ID号。

List Parts

使用举例

nosclient.list_parts({
       bucket:'bucket',
       key:'d.txt',
       upload_id:'4688949732940019989'},func)

参数说明

  • bucket(string) -- 桶名。
  • key(string) -- 对象名。
  • upload_id(string) -- 数据上传标识号。
  • kwargs -- 其他可选参数,如下。
    • limit(integer) -- 限制响应中返回的记录个数。取值范围:0-1000,默认1000。
    • part_number_marker(string) -- 分块号的界限,只有更大的分块号会被列出来。

返回值举例

18 Jul 09:36:12 - STATUS: 200
18 Jul 09:36:12 - HEADERS: { 'x-nos-request-id': '5292fe910af100000155fba5740515fb',
  'content-type': 'application/xml; charset=UTF-8',
  'content-length': '1123',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
18 Jul 09:36:12 - BODY: 
<?xml version="1.0" encoding="UTF-8"?>
<ListPartsResult>
  <Bucket>bucket2</Bucket>
  <Key>d.txt</Key>
  <UploadId>4685815523730016248</UploadId>
  <Owner>
    <ID>ProductID</ID>
  </Owner>
  <StorageClass>archive-standard</StorageClass>
  <PartNumberMarker>0</PartNumberMarker>
  <NextPartNumberMarker>4</NextPartNumberMarker>
  <MaxParts>1000</MaxParts>
  <IsTruncated>false</IsTruncated>
  <Part>
    <PartNumber>1</PartNumber>
    <LastModified>2016-07-15T19:20:27 +0800</LastModified>
    <ETag>b33df4c9833e4dcba58e72ea0a9fcd7f</ETag>
    <Size>12</Size>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <LastModified>2016-07-15T19:20:38 +0800</LastModified>
    <ETag>2e6ff8d5f6a559aef625f881d1fb20b4</ETag>
    <Size>5</Size>
  </Part>
  <Part>
    <PartNumber>3</PartNumber>
    <LastModified>2016-07-15T19:20:47 +0800</LastModified>
    <ETag>97f9bd340940f3db2c547eacedd4ebe2</ETag>
    <Size>9</Size>
  </Part>
  <Part>
    <PartNumber>4</PartNumber>
    <LastModified>2016-07-15T19:20:57 +0800</LastModified>
    <ETag>7921f358c9e17b25f1291235b6cadf85</ETag>
    <Size>9</Size>
  </Part>
</ListPartsResult>

返回值的response的字符形式可能如下:

<?xml version="1.0" encoding="UTF-8"?>
<ListPartsResult>
  <Bucket>bucket2</Bucket>
  <Key>d.txt</Key>
  <UploadId>4685815523730016248</UploadId>
  <Owner>
    <ID>ProductID</ID>
  </Owner>
  <StorageClass>archive-standard</StorageClass>
  <PartNumberMarker>0</PartNumberMarker>
  <NextPartNumberMarker>4</NextPartNumberMarker>
  <MaxParts>1000</MaxParts>
  <IsTruncated>false</IsTruncated>
  <Part>
    <PartNumber>1</PartNumber>
    <LastModified>2016-07-15T19:20:27 +0800</LastModified>
    <ETag>b33df4c9833e4dcba58e72ea0a9fcd7f</ETag>
    <Size>12</Size>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <LastModified>2016-07-15T19:20:38 +0800</LastModified>
    <ETag>2e6ff8d5f6a559aef625f881d1fb20b4</ETag>
    <Size>5</Size>
  </Part>
  <Part>
    <PartNumber>3</PartNumber>
    <LastModified>2016-07-15T19:20:47 +0800</LastModified>
    <ETag>97f9bd340940f3db2c547eacedd4ebe2</ETag>
    <Size>9</Size>
  </Part>
  <Part>
    <PartNumber>4</PartNumber>
    <LastModified>2016-07-15T19:20:57 +0800</LastModified>
    <ETag>7921f358c9e17b25f1291235b6cadf85</ETag>
    <Size>9</Size>
  </Part>
</ListPartsResult>
  • 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对象。

List Multipart Uploads

使用举例:

nosclient.list_multipart_upload({bucket:'bucket'},func)

参数说明

  • bucket(string) -- 桶名。
  • kwargs -- 其他可选参数,如下。
    • limit(integer) -- 限制响应中返回的记录个数。取值范围:0-1000,默认1000。
    • key_marker(string) -- 指定某一uploads key,只有大于该key-marker的才会被列出。

返回值举例

18 Jul 09:43:08 - STATUS: 200
18 Jul 09:43:08 - HEADERS: { 'x-nos-request-id': '6213b3d00af100000155fbabcf8115fb',
  'content-type': 'application/xml; charset=UTF-8',
  'content-length': '455',
  connection: 'close',
  server: 'Jetty(6.1.11)' }
18 Jul 09:43:08 - BODY: <?xml version="1.0" encoding="UTF-8"?>
<ListMultipartUploadsResult>
  <Bucket>bucket2</Bucket>
  <NextKeyMarker>4685815523730016248</NextKeyMarker>
  <IsTruncated>false</IsTruncated>
  <Upload>
    <Key>d.txt</Key>
    <UploadId>4685815523730016248</UploadId>
    <StorageClass>archive-standard</StorageClass>
    <Owner>
      <ID>ProductID</ID>
    </Owner>
    <Initiated>2016-07-15T19:19:12 +0800</Initiated>
  </Upload>
</ListMultipartUploadsResult>

返回值的response的字符形式可能如下:

<?xml version="1.0" encoding="UTF-8"?>
<ListMultipartUploadsResult>
  <Bucket>bucket2</Bucket>
  <NextKeyMarker>4685815523730016248</NextKeyMarker>
  <IsTruncated>false</IsTruncated>
  <Upload>
    <Key>d.txt</Key>
    <UploadId>4685815523730016248</UploadId>
    <StorageClass>archive-standard</StorageClass>
    <Owner>
      <ID>ProductID</ID>
    </Owner>
    <Initiated>2016-07-15T19:19:12 +0800</Initiated>
  </Upload>
</ListMultipartUploadsResult>
  • 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对象。