2.0.0 • Published 8 years ago
mss-sdk v2.0.0
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