1
- # Node.js wrapper for Qiniu Resource (Cloud) Storage API
1
+ # Qiniu Resource Storage SDK for Node.js
2
2
3
3
[ ![ Build Status] ( https://travis-ci.org/qiniu/nodejs-sdk.png?branch=master )] ( https://travis-ci.org/qiniu/nodejs-sdk )
4
4
5
- ![ logo ] ( http://qiniutek.com/images/logo-2.png )
5
+ [ ![ Qiniu Logo ] ( http://qiniutek.com/images/logo-2.png )] ( http://qiniu.com/ )
6
6
7
- 该 SDK 适用于 Node.js 0.4.7 及其以上版本,基于 [ 七牛云存储官方API ] ( /v3/api/ ) 构建。若您的服务端是一个基于 Node.js 编写的网络程序,使用此 SDK ,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。以便让您应用的终端用户进行高速上传和下载,同时也使得您的服务端更加轻盈。
7
+ ## 下载
8
8
9
- jscoverage: [ 85% ] ( http://fengmk2.github.com/coverage/qiniu.html )
9
+ ### 从 npm 安装
10
10
11
- ## 安装
11
+ 这是我们建议的方式
12
12
13
- npm install qiniu
13
+ ```
14
+ npm install qiniu
15
+ ```
14
16
15
- ### 获取 ACCESS_KEY 和 SECRET_KEY
17
+ ### 从 release 版本下载
16
18
17
- 要对接七牛云存储服务,您需要七牛云存储服务端颁发给您的 ` ACCESS_KEY ` 和 ` SECRET_KEY ` 。 ` ACCESS_KEY ` 用于标识客户方的身份,在网络请求中会以某种形式进行传输。 ` SECRET_KEY ` 作为私钥形式存放于客户方本地并不在网络中传递, ` SECRET_KEY ` 的作用是对于客户方发起的具体请求进行数字签名,用以保证该请求是来自指定的客户方并且请求本身是合法有效的。使用 ` ACCESS_KEY ` 进行身份识别,加上 ` SECRET_KEY ` 进行数字签名,即可完成应用接入与认证授权。
19
+ 下载地址: https://github.com/qiniu/nodejs-sdk/releases
18
20
19
- 您可以通过如下步骤获得 ` ACCESS_KEY ` 和 ` SECRET_KEY ` :
21
+ 这里可以下载到旧版本的SDK,release 版本有版本号,有 [ CHANGELOG ] ( https://github.com/qiniu/nodejs-sdk/blob/develop/CHANGELOG.md ) ,使用规格也会比较稳定。
20
22
21
- 1 . [ 开通七牛开发者帐号] ( https://dev.qiniutek.com/signup )
22
- 2 . [ 登录七牛开发者自助平台,查看 ACCESS_KEY 和 SECRET_KEY] ( https://dev.qiniutek.com/account/keys )
23
+ ### 从 git 库下载
23
24
24
- 获取到 ` ACCESS_KEY ` 和 ` SECRET_KEY ` 之后,您就可以参考下面的示例代码进行接入使用了 。
25
+ 你可以直接用 git clone 下载源代码来使用。但是请注意非 master 分支的代码在规格上可能承受变更,应谨慎使用 。
25
26
26
27
## 使用
27
28
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
- });
29
+ 参考文档:[ 七牛云存储 Node.js SDK 使用指南] ( https://github.com/qiniu/nodejs-sdk/tree/develop/docs )
122
30
31
+ 旧版本的SDK(version < 6.0.0) [ 戳这里] ( http://docs.qiniutek.com/v3/sdk/nodejs/ )
123
32
124
33
## 贡献代码
125
34
@@ -131,7 +40,7 @@ SDK 使用文档参考:[http://docs.qiniutek.com/v3/sdk/nodejs/](http://docs.q
131
40
132
41
## 许可证
133
42
134
- Copyright (c) 2012 qiniu.com
43
+ Copyright (c) 2013 qiniu.com
135
44
136
45
基于 MIT 协议发布:
137
46
0 commit comments