1- # Node.js wrapper for Qiniu Resource (Cloud) Storage API
1+ Qiniu Resource Storage SDK for Node.js
2+ ===
23
3- [ ![ Build Status] ( https://travis-ci.org/qiniu/nodejs-sdk.png?branch=master )] ( https://travis-ci.org/qiniu/nodejs-sdk )
4-
5- ![ logo] ( http://qiniutek.com/images/logo-2.png )
6-
7- 该 SDK 适用于 Node.js 0.4.7 及其以上版本,基于 [ 七牛云存储官方API] ( /v3/api/ ) 构建。若您的服务端是一个基于 Node.js 编写的网络程序,使用此 SDK ,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。以便让您应用的终端用户进行高速上传和下载,同时也使得您的服务端更加轻盈。
8-
9- jscoverage: [ 85%] ( http://fengmk2.github.com/coverage/qiniu.html )
10-
11- ## 安装
12-
13- npm install qiniu
14-
15- ### 获取 ACCESS_KEY 和 SECRET_KEY
16-
17- 要对接七牛云存储服务,您需要七牛云存储服务端颁发给您的 ` ACCESS_KEY ` 和 ` SECRET_KEY ` 。` ACCESS_KEY ` 用于标识客户方的身份,在网络请求中会以某种形式进行传输。` SECRET_KEY ` 作为私钥形式存放于客户方本地并不在网络中传递,` SECRET_KEY ` 的作用是对于客户方发起的具体请求进行数字签名,用以保证该请求是来自指定的客户方并且请求本身是合法有效的。使用 ` ACCESS_KEY ` 进行身份识别,加上 ` SECRET_KEY ` 进行数字签名,即可完成应用接入与认证授权。
18-
19- 您可以通过如下步骤获得 ` ACCESS_KEY ` 和 ` SECRET_KEY ` :
20-
21- 1 . [ 开通七牛开发者帐号] ( https://dev.qiniutek.com/signup )
22- 2 . [ 登录七牛开发者自助平台,查看 ACCESS_KEY 和 SECRET_KEY] ( https://dev.qiniutek.com/account/keys )
23-
24- 获取到 ` ACCESS_KEY ` 和 ` SECRET_KEY ` 之后,您就可以参考下面的示例代码进行接入使用了。
4+ [ ![ Build Status] ( https://travis-ci.org/qiniu/nodejs-sdk.png?branch=master )] ( https://travis-ci.org/qiniu/nodejs-sdk )
5+ [ ![ Qiniu Logo] ( http://qiniutek.com/images/logo-2.png )] ( http://qiniu.com/ )
256
267## 使用
278
28- SDK 使用文档参考:[ http://docs.qiniutek.com/v3/sdk/nodejs/ ] ( http://docs.qiniutek.com/v3/sdk/nodejs/ )
29-
30- ### 示例程序
31-
32- var qiniu = require('qiniu');
33-
34- // 配置密钥
35- qiniu.conf.ACCESS_KEY = '<Please apply your access key>';
36- qiniu.conf.SECRET_KEY = '<Dont send your secret key to anyone>';
37-
38- // 实例化带授权的 HTTP Client 对象
39- var conn = new qiniu.digestauth.Client();
40-
41- // 创建空间,也可以在开发者自助网站创建
42- var bucket = 'yet_another_bucket';
43- qiniu.rs.mkbucket(conn, bucket, function(resp) {
44- console.log("\n===> Make bucket result: ", resp);
45- if (resp.code != 200) {
46- return;
47- }
48- });
49-
50- // 实例化 Bucket 操作对象
51- var rs = new qiniu.rs.Service(conn, bucket);
52-
53- // 上传文件第1步
54- // 生成上传授权凭证(uploadToken)
55- var opts = {
56- scope: "yet_another_bucket", // 可以是 "<bucketName>" 或 "<bucketName>:<key>"
57- expires: 3600,
58- callbackUrl: "http://www.example.com/notifications/qiniurs", // 可选
59- callbackBodyType: "application/x-www-form-urlencoded", // 可选
60- };
61- var uploadPolicy = new qiniu.auth.PutPolicy(opts);
62- var uploadToken = uploadPolicy.token();
63-
64- // 上传文件第2步
65- // 组装上传文件所需要的参数
66- var key = __filename;
67- var localFile = key,
68- customMeta = "",
69- callbackParams = {"bucket": bucket, "key": key},
70- enableCrc32Check = false,
71- mimeType = mime.lookup(key);
72-
73- // 上传文件第3步
74- // 上传文件
75- rs.uploadFileWithToken(uploadToken, localFile, key, mimeType, customMeta, callbackParams, enableCrc32Check, function(resp){
76- console.log("\n===> Upload File with Token result: ", resp);
77- if (resp.code != 200) {
78- // ...
79- return;
80- }
81-
82- // 查看已上传文件属性信息
83- rs.stat(key, function(resp) {
84- console.log("\n===> Stat result: ", resp);
85- if (resp.code != 200) {
86- // ...
87- return;
88- }
89- });
90- });
91-
92-
93- // 获取文件下载链接(含文件属性信息)
94- var saveAsFriendlyName = key;
95- rs.get(key, saveAsFriendlyName, function(resp) {
96- console.log("\n===> Get result: ", resp);
97- if (resp.code != 200) {
98- // ...
99- return;
100- }
101- });
102-
103- // 删除已上传文件
104- rs.remove(key, function(resp) {
105- console.log("\n===> Delete result: ", resp);
106- });
107-
108- // 将bucket的内容作为静态内容发布
109- var DEMO_DOMAIN = bucket + '.dn.qbox.me';
110- rs.publish(DEMO_DOMAIN, function(resp){
111- console.log("\n===> Publish result: ", resp);
112- if (resp.code != 200){
113- clear(rs);
114- return;
115- }
116- });
117-
118- // 删除bucket,慎用!
119- rs.drop(function(resp){
120- console.log("\n===> Drop result: ", resp);
121- });
122-
9+ 参考文档:[ 七牛云存储 Node.js SDK 使用指南] ( https://github.com/qiniu/nodejs-sdk/tree/develop/docs )
10+ 旧版本的SDK(version < 6.0.0) [ 戳这里] ( http://docs.qiniutek.com/v3/sdk/nodejs/ )
12311
12412## 贡献代码
12513
@@ -131,7 +19,7 @@ SDK 使用文档参考:[http://docs.qiniutek.com/v3/sdk/nodejs/](http://docs.q
13119
13220## 许可证
13321
134- Copyright (c) 2012 qiniu.com
22+ Copyright (c) 2013 qiniu.com
13523
13624基于 MIT 协议发布:
13725
0 commit comments