Node.js SDK 手册
快速入门
使用 NOS Node SDK 前,你可以先参照 API 手册 熟悉 NOS 的基本概念,如 Bucket、Object、EndPoint、AccessKeyId 和 AccessKeySecret 等。 本节你将看到如何快速的使用 NOS Node SDK,完成常用的操作,上传文件、下载文件等。
基本操作
上传文件
对象(Object)是 NOS 中最基本的数据单元,你可以把它简单的理解为文件,以下代码可以实现简单的对象上传:
var map = {
bucket: 'bucketName', //桶名
key: 'objectName', //对象名
filepath: 'path' //本地文件路径
};
var cb = function(error, result) {
console.log(error, result);
};
try {
nosclient.put_file(map, cb);
}
catch(err) {
console.log("Failed with code:" + err.code);
}
对象命名规则请参见 API 手册 对象
下载文件
上传对象成功之后,你可以读取它的内容,以下代码可以实现文件的下载:
var map = {
bucket: 'bucketName', //桶名
key: 'objectName', //对象名
path: 'destpath' //下载到的本地文件路径(包含文件名)
};
var cb = function(error, result) {
console.log(error, result);
}
try {
nosclient.get_object_file(map, cb) //这里的 destpath 包括了文件名
}
catch(err) {
console.log("Failed with code: " + err.code);
}
列举文件
当上传文件成功之后,可以查看桶中包含的文件列表,以下代码展示如何列举桶内的文件:
var map = {
bucket: 'bucketName' //桶名
};
var cb = function(error, 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);
}
上面的代码默认列举 100 个 object
删除文件
文件上传成功后,可以指定删除桶中的文件,以下代码实现桶中文件的删除:
var map = {
bucket: 'bucketName', //桶名
key: 'objectName' //对象名
};
var cb = function(error, 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);
}
返回结果处理
- api 接口的第二个参数回调函数 cb,cb 中的操作由用户自行定义,在收到响应的时候由 sdk 自动调用,并传入一个 result 参数,该参数是调用 api 接口返回的结果对象,所有的返回参数都在这个 result 对象中。
- 用户可以在自定义 cb 的时候利用该参数获取响应的内容,如 uploadid,etag 等等 例如:
var map = {
bucket: 'bucketName' //桶名
};
var cb = function(error, 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);