2.0.0 • Published 8 years ago

mss-sdk v2.0.0

Weekly downloads
13
License
Apache 2.0
Repository
github
Last release
8 years ago

mss-sdk-js

美团云存储(MSS) SDK for Node.js

Installation

npm install mss-sdk

Usage

初始化MSS

var MSS = require('mss-sdk');

配置

方法1:
// 参考sample/config1.js

var config = new MSS.Config({
	accessKeyId: '你的accessKey', 
	secretAccessKey: '你的secretKey'
});

//全局生效:
MSS.config = config;
方法2:

创建一个json文件config.json:

{
	"accessKeyId": "你的accessKey", 
	"secretAccessKey": "你的secretKey"
}

加载config.json:

// 参考sample/config2.js

//全局生效:
MSS.config.loadFromPath('./config.json');
方法3:
// 参考sample/config3.js

var config = new MSS.Config({
	accessKeyId: '你的accessKey', 
	secretAccessKey: '你的secretKey'
});

//实例化:
var s3 = new MSS.S3();
//当前实例生效:
s3.config = config;
方法4:
// 参考sample/config4.js

//实例化,当前实例生效:
var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

实例化

示例1:
var s3 = new MSS.S3();
示例2:
var mybucket = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});
示例3:
// 参考sample/inst3.js

var mybucket = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey',
  params:{
    Bucket: 'mybucket'
  }
});
示例4:
// 参考sample/inst4.js

var mykey = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey',
  params:{
    Bucket: 'mybucket',
    Key: 'myObject'
  }
});

调用

创建一个bucket并上传一个文件:
// 参考sample/create_bucket.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey',
  params:{
    Bucket: 'myBucket'
  }
});

s3.createBucket(function() {
  var data = {Key: 'Hello', Body: 'Word!'};
  s3.putObject(data, function(err, data) {
    if (err) {
      console.log("Error uploading data: ", err);
    } else {
      console.log("Successfully uploaded data to %s/Hello", 'myBucket');
    }
  });
});
列出所有bucket:
// 参考sample/list_buckets.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

s3.listBuckets(function(err, data) {
	if (err)
		console.log(err, err.stack);
	else
		console.log(data);
});
列出bucket中的文件:
// 参考sample/list_objects.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var params = {
  Bucket: 'myBucket',     //required
  Delimiter: '/',         //用'/'折叠伪子目录
  Marker: '',             //分页标签
  MaxKeys: 100,           //最大成员数
  Prefix: ''              //按前缀查询
};

s3.listObjects(params, function(err, data) {
  if (err)
    console.log(err, err.stack);
  else
    console.log(data);
});
下载文件示例1:
// 参考sample/download1.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var params = {
  Bucket: 'myBucket',
  Key: 'myObject'};
var file = require('fs').createWriteStream('./download/file1');
s3.getObject(params).createReadStream().pipe(file);
下载文件示例2:
// 参考sample/download2.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var params = {
  Bucket: 'myBucket',
  Key: 'myObject'};
var file = require('fs').createWriteStream('./download/file2');

s3.getObject(params).on('httpData', function(chunk) {
	file.write(chunk); 
}).on('httpDone', function() {
	file.end();
}).on('httpDownloadProgress', function(progress) {
	console.log(progress);
}).on('error', function(error) {
	console.log(error);
}).on('success', function() {
	console.log('success');
}).on('httpHeaders', function(statusCode, headers) {
	console.log('statusCode: ' + statusCode + "\n", headers);
}).send();
上传文件示例1:
// 参考sample/upload1.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var file = require('fs').createReadStream('./upload/file');

var params = {
  Bucket: 'myBucket',
  Key: 'upload/file1',
  Body: file
};

s3.putObject(params).on('httpHeaders', function(statusCode, headers) {
  console.log(headers);
}).on('httpUploadProgress', function(progress) {
  console.log(progress);
}).on('error', function(error) {
  console.log(error);
}).on('success', function() {
  console.log('success');
}).send();
上传文件示例2:
// 参考sample/upload2.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var fileBuffer = require('fs').readFileSync('./upload/file');

s3.putObject({
  Bucket: 'myBucket',
  Key: 'upload/file2',
  Body: fileBuffer
}, function(error, response) {
  if (error) {
    console.log(error);
  } else {
    console.log('success');
  }
});
上传文件示例3:
// 参考sample/upload3.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey',
  params:{
    Bucket: 'myBucket'
  }
});

var data = {Key: 'Hello', Body: 'World!'};
s3.putObject(data, function(err, data) {
  if (err) {
    console.log("Error uploading data: ", err);
  } else {
    console.log("Successfully uploaded data to %s/Hello", 'myBucket');
  }
});
获取bucket的acl信息:
// 参考sample/get_acl.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey',
  params:{
    Bucket: 'myBucket'
  }
});

s3bucket.getBucketAcl(function(err, data) {
	if (err) {
		console.log(err);	// an error occurred
	} else {
		console.log(data);	// successful response
	}
});
设置bucket的acl信息:
// 参考sample/put_acl.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var params = {
  Bucket: 'myBucket',
  ACL: 'private'
};

s3.putBucketAcl(params, function(err, data) {
  if (err) {
    console.log(err);
  } else {
    console.log("set private success");
    params["ACL"] = 'public-read'
    s3.putBucketAcl(params, function(err, data) {
      if (err) {
        console.log(err);
      } else {
        console.log("set public-read success");
      }
    });
  }
});
删除一个文件:
// 参考sample/delete_object.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var params = {
  Bucket: 'myBucket',
  Key: 'myObject'
};

s3.deleteObject(params, function(err, data) {
	if (err) {
		console.log(err);
	} else {
		console.log("success");
	}
});
删除一个bucket:
// 参考sample/delete_bucket.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

var params = {Bucket: 'myBucket'};

s3.deleteBucket(params, function(err, data) {
	if (err) {
		console.log(err);
	} else {
		console.log("success");
	}
});
获取一个带有签名的用于下载的url:
// 参考sample/get_presign_url.js

var s3 = new MSS.S3({
  accessKeyId: '你的accessKey',
  secretAccessKey: '你的secretKey'
});

// This URL will expire in one minute (60 seconds)
var params = {
  Bucket: 'myBucket',
  Key: 'myObject',
  Expires: 60
};

var url = s3.getSignedUrl('getObject', params);
console.log("The URL to GET is [%s]", url);

var url = s3.getSignedUrl('headObject', params);
console.log("The URL to HEAD is [%s]", url);
分片上传:
// 代码较长请参考sample/multipart_upload.js