转载自:https://github.com/SinaCloudStorage/scs-sdk-js

scs-sdk-js

新浪云存储(SCS) SDK for Node.js

Installation

npm install scs-sdk

Usage

初始化SinaCloud

var SinaCloud = require('scs-sdk');

配置

方法1:

var config = new SinaCloud.Config({
accessKeyId: '你的accessKey',
secretAccessKey: '你的secretKey',
sslEnabled: false
}); //全局生效:
SinaCloud.config = config;
方法2:

创建一个json文件config.json:


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

加载config.json:


//全局生效:
SinaCloud.config.loadFromPath('./config.json');
方法3:

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

实例化

示例1:

var s3 = new SinaCloud.S3();
示例2:

var mybucket = new SinaCloud.S3({params: {Bucket: 'mybucket'}});
示例3:

var myobject = new SinaCloud.S3({params: {Bucket: 'mybucket', Key: 'mykey'}});

调用

创建一个bucket并上传一个文件:

var SinaCloud = require('scs-sdk');
SinaCloud.config.loadFromPath('./config.json'); var myBucket = new SinaCloud.S3({params: {Bucket: 'myBucket'}});
myBucket.createBucket(function() {
var data = {Key: 'myKey', Body: 'Hello!'};
myBucket.putObject(data, function(err, data) {
if (err) {
console.log("Error uploading data: ", err);
} else {
console.log("Successfully uploaded data to myBucket/myKey");
}
});
});
列出所有bucket:

var s3 = new SinaCloud.S3(); s3.listBuckets(function(err, data) {
if (err)
console.log(err, err.stack); // an error occurred
else
console.log(data); // successful response
});
列出bucket中的文件:

var params = {
Bucket: 'bucket-name', //required
Delimiter: '/', //用'/'折叠
Marker: '', //分页标签
MaxKeys: 100, //最大成员数
Prefix: 'xxx' //按前缀查询
}; s3.listObjects(params, function(err, data) { if (err)
console.log(err, err.stack); // an error occurred
else
console.log(data); // successful response
});
下载文件示例1:

var s3 = new SinaCloud.S3();
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg');
s3.getObject(params).createReadStream().pipe(file);
下载文件示例2:

var s3 = new SinaCloud.S3();
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg'); 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:

var s3 = new SinaCloud.S3();
var file = require('fs').createReadStream('/path/to/file.jpg');
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg', 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:

var fileName = '/file/path/IMG_3218.JPG';
var remoteFilename = 'IMG_3218.JPG';
var s3 = new SinaCloud.S3();
var fileBuffer = require('fs').readFileSync(fileName); s3.putObject({
ACL: 'public-read',
Bucket: 'mybucket',
Key: remoteFilename,
Body: fileBuffer
}, function(error, response) {
if (error) {
console.log(error);
} else {
console.log('uploaded file[' + fileName + '] to [' + remoteFilename + ']');
}
});
上传文件示例3:

var myBucket = new SinaCloud.S3({params: {Bucket: 'myBucket'}});
var data = {Key: 'myKey', Body: 'Hello!'};
myBucket.putObject(data, function(err, data) {
if (err) {
console.log("Error uploading data: ", err);
} else {
console.log("Successfully uploaded data to myBucket/myKey");
}
});
获取bucket的acl信息:

var s3bucket = new SinaCloud.S3({params: {Bucket: 'myBucket'}}); s3bucket.getBucketAcl(function(err, data) {
if (err) {
console.log(err); // an error occurred
} else {
console.log(data); // successful response
}
});
删除一个文件:

var s3 = new SinaCloud.S3();
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
s3.deleteObject(params, function(err, data) {
if (err) {
console.log(err); // an error occurred
} else {
console.log(data); // successful response
}
});
删除一个bucket:

var s3 = new SinaCloud.S3();
var params = {Bucket: 'myBucket'};
s3.deleteBucket(params, function(err, data) {
if (err) {
console.log(err); // an error occurred
} else {
console.log(data); // successful response
}
});
获取一个带有签名的用于下载的url:

var s3 = new SinaCloud.S3(); // This URL will expire in one minute (60 seconds)
var params = {Bucket: 'myBucket', Key: 'myKey', Expires: 60};
var url = s3.getSignedUrl('getObject', params);
console.log("The URL is", url);

最新文章

  1. C++模拟实现JDK中的ArrayList和LinkedList
  2. [转]使用 Shell 对进程资源进行监控
  3. Pexels Videos – 可以免费商业使用的短视频
  4. Nginx反向代理设置 从80端口转向其他端口
  5. Animation小问题整理
  6. Ant build ${renderscript.opt.level}问题解决方案
  7. 【HDOJ】1260 Tickets
  8. (转载)Mysql使用Describe命令判断字段是否存在
  9. HDU 3478 Play with Chain (Splay树)
  10. 剑指offer:重建二叉树
  11. Get json formatted string from web by sending HttpWebRequest and then deserialize it to get needed data
  12. Java 8 的Lambda表达式
  13. AngularJS学习之旅—AngularJS 模型(四)
  14. Python3.7和数据库MySQL交互(二)SQLyog安装教程
  15. nuxt跨域
  16. Codeforces Round #552 (Div. 3) A题
  17. 如何利用FastReport.Net 设计并导出报表?
  18. Western Subregional of NEERC, Minsk, Wednesday, November 4, 2015 Problem I. Alien Rectangles 数学
  19. Using Dtrace OEL 6.X
  20. 生成asm-offset

热门文章

  1. 201871010111-刘佳华《面向对象程序设计(java)》课程学习总结
  2. Java集合--Map总结
  3. 纯css实现树形结构
  4. Vue-main.js中的一些配置
  5. [cf1138BCircus][枚举,列等式]
  6. paramiko多线程远程执行命令
  7. 关于rsa公钥格式的处理,一行纯内容进行换行格式化
  8. JavaWeb_(Spring框架)xml配置文件
  9. Mysql中行转列和列转行
  10. 解决python中文乱码的方法