3. 快速入门¶
使用NOS Node SDK前,您可以先参照 API 手册 熟悉NOS的基本概念,如Bucket、Object、EndPoint、AccessKeyId和AccessKeySecret等。 本节您将看到如何快速的使用NOS Node SDK,完成常用的操作,上传文件、下载文件等。
3.1. 基本操作¶
3.1.1. 上传文件¶
对象(Object)是NOS中最基本的数据单元,您可以把它简单的理解为文件,以下代码可以实现简单的对象上传:
var map = {
bucket: 'bucketName', //桶名
key: 'objectName', //对象名
filepath: 'path' //本地文件路径
};
var cb = function(result) {
console.log(result);
};
try {
nosclient.put_file(map, cb);
}
catch(err) {
console.log("Failed with code:" + err.code);
}
Attention
对象命名规则请参见 API 手册 对象
更多的上传文件信息,请参见 NOS Node SDK 上传文件
3.1.2. 下载文件¶
上传对象成功之后,您可以读取它的内容,以下代码可以实现文件的下载:
var map = {
bucket: 'bucketName', //桶名
key: 'objectName', //对象名
path: 'destpath' //下载到的本地文件路径(包含文件名)
};
var cb = function(result) {
console.log(result);
}
try {
nosclient.get_object_file(map, cb) //这里的destpath包括了文件名
}
catch(err) {
console.log("Failed with code: " + err.code);
}
更多的下载文件信息,请参见 NOS Node SDK 下载文件
3.1.3. 列举文件¶
当上传文件成功之后,可以查看桶中包含的文件列表,以下代码展示如何列举桶内的文件:
var map = {
bucket: 'bucketName' //桶名
};
var cb = function(result) {
//获取对象列表
var objectlist = result['bucketInfo']['objectlist'];
//遍历对象列表
for (var i = 0; i < objectlist.length; i++) {
//打印对象信息
console.log(objectlist[i]['key']);
console.log(objectlist[i]['lastmodified']);
console.log(objectlist[i]['etag']);
console.log(objectlist[i]['size']);
}
}
try {
nosclient.list_objects(map, cb);
}
catch(err) {
console.log("Failed with code:" + err.code);
}
Note
上面的代码默认列举100个object
更多的管理文件信息,请参见 NOS Node SDK 文件管理
3.1.4. 删除文件¶
文件上传成功后,可以指定删除桶中的文件,以下代码实现桶中文件的删除:
var map = {
bucket: 'bucketName', //桶名
key: 'objectName' //对象名
};
var cb = function(result) {
//打印statusCode
console.log(result['statusCode']);
//打印requestId
console.log(result['headers']['x-nos-request-id'])
}
try {
nosclient.delete_object(map, cb);
}
catch(err) {
console.log("Failed with code:" + err.code);
}
3.1.5. 返回结果处理¶
- api接口的第二个参数回调函数cb,cb中的操作由用户自行定义,在收到响应的时候由sdk自动调用,并传入一个result参数,该参数是调用api接口返回的结果对象,所有的返回参数都在这个result对象中。
- 用户可以在自定义cb的时候利用该参数获取响应的内容,如uploadid,etag等等
例如:
var map = {
bucket: 'bucketName' //桶名
};
var cb = function(result) {
//获取对象列表
var objectlist = result['bucketInfo']['objectlist'];
//遍历对象列表
for (var i = 0; i < objectlist.length; i++) {
//打印对象信息
console.log(objectlist[i]['key']);
console.log(objectlist[i]['lastmodified']);
console.log(objectlist[i]['etag']);
console.log(objectlist[i]['size']);
}
}
nosclient.list_objects(map, cb);