Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
e03b10d
delete previous version
longbai Jul 12, 2013
377072e
delete demo/*
longbai Jul 12, 2013
fdf62b6
create version 6.0.0
longbai Jul 12, 2013
404ed88
add test-env.sh
longbai Jul 12, 2013
5b9a4a0
filename docs/demo -> docs/gist
longbai Jul 12, 2013
ded0eca
docs
longbai Jul 15, 2013
198c9ce
docs
longbai Jul 15, 2013
7a0f364
README
lintianzhi Jul 15, 2013
b58ebd5
rm test dependency module
lintianzhi Jul 15, 2013
1b224d8
package.json
lintianzhi Jul 15, 2013
274d7b2
.travis.yml
lintianzhi Jul 15, 2013
74172fa
add BUCKET, DOMAIN
lintianzhi Jul 15, 2013
435497c
dependency version
lintianzhi Jul 15, 2013
8e0f884
Update .npmignore
lintianzhi Jul 15, 2013
162499b
add node version 0.10
longbai Jul 15, 2013
e584635
hide my key
longbai Jul 15, 2013
40ed58f
README
lintianzhi Jul 15, 2013
8537058
random key
lintianzhi Jul 15, 2013
fe09102
rsf test
lintianzhi Jul 15, 2013
ecd580c
highlight {javascript}
lintianzhi Jul 16, 2013
775101a
add @gist for README
lintianzhi Jul 16, 2013
52e7620
CHANGELOG
lintianzhi Jul 16, 2013
e4e6f33
update title
lintianzhi Jul 17, 2013
a4e1d7c
head space
lintianzhi Jul 17, 2013
7e16c36
head space
lintianzhi Jul 17, 2013
42c6e9f
update key
lintianzhi Jul 24, 2013
c2ac60c
qiniutek.com -> qiniu.com
lintianzhi Jul 24, 2013
d96376e
get Error: 'First argument needs to be a number, array or string' wit…
paul-2012 Jul 26, 2013
5f6d4a6
add travis-ci status image
lintianzhi Jul 29, 2013
411ee49
add travis-ci status image
lintianzhi Jul 29, 2013
0b6a8a3
rm resumable_io.js
lintianzhi Jul 30, 2013
6c0a3e9
add the link of old sdk doc
lintianzhi Jul 30, 2013
02c52b3
onret(ret) -> onret(err, ret)
lintianzhi Jul 30, 2013
15afcd0
for travis-ci parallel test
lintianzhi Jul 30, 2013
c6982d5
update gist:rsf
lintianzhi Jul 30, 2013
2eeec07
Merge pull request #65 from paul-2012/develop
longbai Aug 1, 2013
4c36122
Merge remote-tracking branch 'qiniu/develop' into ltz_6
longshanksmo Aug 6, 2013
968fe63
Merge pull request #69 from longshanksmo/ltz_6
longshanksmo Aug 6, 2013
48b149f
update README
lintianzhi Aug 6, 2013
8ff6318
update
lintianzhi Aug 6, 2013
f4c73cd
update
lintianzhi Aug 6, 2013
6023dd3
Merge pull request #70 from lintianzhi/feature/readme-from-php
longshanksmo Aug 6, 2013
7c2b7e8
update
lintianzhi Aug 8, 2013
e7d7903
Merge pull request #71 from lintianzhi/fix/gist_prefix
longshanksmo Aug 8, 2013
db45cc9
{} -> nil
lintianzhi Aug 10, 2013
5399e17
fix catch return empty
lintianzhi Aug 12, 2013
194ed55
Merge pull request #73 from lintianzhi/feature/kv_to_nil
longshanksmo Aug 13, 2013
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,3 @@ results

node_modules
npm-debug.log
demo/*.jpg
demo/rtest.js
demo/itest.js
demo/put.sh
2 changes: 1 addition & 1 deletion .npmignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
test/
test-env.sh
.travis.yml
coverage.html
lib-cov/
Makefile
docs/
demo/
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
language: node_js
node_js:
- 0.10
- 0.8
- 0.6
before_script:
- export QINIU_ACCESS_KEY="nnwjTeUgpQdfZp9cb4-iHK0EUlebKCNk4kXwoStq"
- export QINIU_SECRET_KEY="Ia9pXC-XEcGF6hvu1V5fdRhwFLpeUkCbt0Gxk5NW"
- export QINIU_TEST_BUCKET="test741"
- export QINIU_TEST_DOMAIN="test741.qiniudn.com"
68 changes: 4 additions & 64 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,67 +1,7 @@
#CHANGELOG
## CHANGE LOG

## v2.4.3
### v6.0.0

2013-02-22

Issue [#54](https://github.com/qiniu/nodejs-sdk/pull/54):

- 去除对自定义 generateQueryString() 函数的依赖,使用 querystring 包的 stringify() 函数。
- auth.PutPolicy 增加对 returnBody 的支持,用户可自定义上传完文件后的返回值。

## v2.4.2

Issue [#48](https://github.com/qiniu/nodejs-sdk/pull/48):

- 去除 auth.GetPolicy.scope 的默认值:"*/*"

Issue [#46](https://github.com/qiniu/nodejs-sdk/pull/46):

- 更新 v2.4.1 的文档(docs/README.md)


## v2.4.1

2013-02-09

Issue [#43](https://github.com/qiniu/nodejs-sdk/pull/43):

- imageMogr bugfix: auto-orient
- auth.UploadToken, auth.DownloadToken 改为 auth.PutPolicy, auth.GetPolicy
- auth.UploadToken.generateToken() 改为 auth.PutPolicy.token()
- auth.DownloadToken.generateToken() 改为 auth.GetPolicy.token()
- auth.DownloadToken.pattern 改为 auth.GetPolicy.scope


## v2.4.0

2013-01-23

Issue [#36](https://github.com/qiniu/nodejs-sdk/pull/36):

- 增加 auth.DownloadToken 类
- auth.UploadToken 增加:escape、asyncOps 成员,generateSignature 改名为 generateToken
- 增加 rs.copy, rs.move, rs.batchGet, rs.batchStat, rs.batchDelete, rs.batchCopy, rs.batchMove
- 增加 Travis-CI 的支持

Issue [#32](https://github.com/qiniu/nodejs-sdk/pull/32):

- auth.UploadToken.generateSignature 各个参数调整为可选
- uploadWithToken 非兼容调整: rs.uploadWithToken(uploadToken, stream, key, mimeType, customMeta, callbackParams, crc32, onret)
- generateActionString 非兼容调整: action = util.generateActionString(bucket, key, mimeType, customMeta, crc32)


## v2.3.2

2012-12-31

- 修复crc32编码
- 修复使用UploadToken方式上传时流式上传bug,流式上传不检查crc32


## v2.3.0

2012-11-23

- 启用新的 uploadToken(上传凭证)上传方式,可由客户方业务服务器生成上传凭证。上传前无需请求七牛云存储,减少http请求。
2013-07-16 issue [#56](https://github.com/qiniu/nodejs-sdk/pull/56)

- 遵循 [sdkspec v6.0.4](https://github.com/qiniu/sdkspec/tree/v6.0.4)
31 changes: 18 additions & 13 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
TESTS = test/*.test.js
TIMEOUT = 15000
REPORTER = spec
TIMEOUT = 10000
MOCHA_OPTS =
test:
@NODE_ENV=test ./node_modules/.bin/mocha \
--require should \
--reporter $(REPORTER) \
--timeout $(TIMEOUT) \
$(MOCHA_OPTS) \
$(TESTS)

test:
@NODE_ENV=test ./node_modules/mocha/bin/mocha \
--reporter $(REPORTER) \
--timeout $(TIMEOUT) \
$(TESTS)

test-cov:
@rm -rf ./lib-cov
@$(MAKE) lib-cov
@QINIU_COV=1 $(MAKE) test REPORTER=dot
test-cov: lib-cov
# @QINIU_COV=1 $(MAKE) test REPORTER=dot
@QINIU_COV=1 $(MAKE) test REPORTER=html-cov > coverage.html
@rm -rf ./lib-cov


lib-cov:
@jscoverage lib $@
@jscoverage --no-highlight qiniu $@

clean:
rm -rf ./lib-cov coverage.html

.PHONY: test-cov test lib-cov
.PHONY: test-cov lib-cov test
123 changes: 16 additions & 107 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,125 +1,34 @@
# Node.js wrapper for Qiniu Resource (Cloud) Storage API
# Qiniu Resource Storage SDK for Node.js

[![Build Status](https://travis-ci.org/qiniu/nodejs-sdk.png?branch=master)](https://travis-ci.org/qiniu/nodejs-sdk)

![logo](http://qiniutek.com/images/logo-2.png)
[![Qiniu Logo](http://qiniutek.com/images/logo-2.png)](http://qiniu.com/)

该 SDK 适用于 Node.js 0.4.7 及其以上版本,基于 [七牛云存储官方API](/v3/api/) 构建。若您的服务端是一个基于 Node.js 编写的网络程序,使用此 SDK ,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。以便让您应用的终端用户进行高速上传和下载,同时也使得您的服务端更加轻盈。
## 下载

jscoverage: [85%](http://fengmk2.github.com/coverage/qiniu.html)
### 从 npm 安装

## 安装
这是我们建议的方式

npm install qiniu
```
npm install qiniu
```

### 获取 ACCESS_KEY 和 SECRET_KEY
### 从 release 版本下载

要对接七牛云存储服务,您需要七牛云存储服务端颁发给您的 `ACCESS_KEY` 和 `SECRET_KEY`。`ACCESS_KEY` 用于标识客户方的身份,在网络请求中会以某种形式进行传输。`SECRET_KEY` 作为私钥形式存放于客户方本地并不在网络中传递,`SECRET_KEY` 的作用是对于客户方发起的具体请求进行数字签名,用以保证该请求是来自指定的客户方并且请求本身是合法有效的。使用 `ACCESS_KEY` 进行身份识别,加上 `SECRET_KEY` 进行数字签名,即可完成应用接入与认证授权。
下载地址:https://github.com/qiniu/nodejs-sdk/releases

您可以通过如下步骤获得 `ACCESS_KEY` 和 `SECRET_KEY`:
这里可以下载到旧版本的SDK,release 版本有版本号,有 [CHANGELOG](https://github.com/qiniu/nodejs-sdk/blob/develop/CHANGELOG.md),使用规格也会比较稳定。

1. [开通七牛开发者帐号](https://dev.qiniutek.com/signup)
2. [登录七牛开发者自助平台,查看 ACCESS_KEY 和 SECRET_KEY](https://dev.qiniutek.com/account/keys)
### 从 git 库下载

获取到 `ACCESS_KEY` 和 `SECRET_KEY` 之后,您就可以参考下面的示例代码进行接入使用了
你可以直接用 git clone 下载源代码来使用。但是请注意非 master 分支的代码在规格上可能承受变更,应谨慎使用

## 使用

SDK 使用文档参考:[http://docs.qiniutek.com/v3/sdk/nodejs/](http://docs.qiniutek.com/v3/sdk/nodejs/)

### 示例程序

var qiniu = require('qiniu');

// 配置密钥
qiniu.conf.ACCESS_KEY = '<Please apply your access key>';
qiniu.conf.SECRET_KEY = '<Dont send your secret key to anyone>';

// 实例化带授权的 HTTP Client 对象
var conn = new qiniu.digestauth.Client();

// 创建空间,也可以在开发者自助网站创建
var bucket = 'yet_another_bucket';
qiniu.rs.mkbucket(conn, bucket, function(resp) {
console.log("\n===> Make bucket result: ", resp);
if (resp.code != 200) {
return;
}
});

// 实例化 Bucket 操作对象
var rs = new qiniu.rs.Service(conn, bucket);

// 上传文件第1步
// 生成上传授权凭证(uploadToken)
var opts = {
scope: "yet_another_bucket", // 可以是 "<bucketName>" 或 "<bucketName>:<key>"
expires: 3600,
callbackUrl: "http://www.example.com/notifications/qiniurs", // 可选
callbackBodyType: "application/x-www-form-urlencoded", // 可选
};
var uploadPolicy = new qiniu.auth.PutPolicy(opts);
var uploadToken = uploadPolicy.token();

// 上传文件第2步
// 组装上传文件所需要的参数
var key = __filename;
var localFile = key,
customMeta = "",
callbackParams = {"bucket": bucket, "key": key},
enableCrc32Check = false,
mimeType = mime.lookup(key);

// 上传文件第3步
// 上传文件
rs.uploadFileWithToken(uploadToken, localFile, key, mimeType, customMeta, callbackParams, enableCrc32Check, function(resp){
console.log("\n===> Upload File with Token result: ", resp);
if (resp.code != 200) {
// ...
return;
}

// 查看已上传文件属性信息
rs.stat(key, function(resp) {
console.log("\n===> Stat result: ", resp);
if (resp.code != 200) {
// ...
return;
}
});
});


// 获取文件下载链接(含文件属性信息)
var saveAsFriendlyName = key;
rs.get(key, saveAsFriendlyName, function(resp) {
console.log("\n===> Get result: ", resp);
if (resp.code != 200) {
// ...
return;
}
});

// 删除已上传文件
rs.remove(key, function(resp) {
console.log("\n===> Delete result: ", resp);
});

// 将bucket的内容作为静态内容发布
var DEMO_DOMAIN = bucket + '.dn.qbox.me';
rs.publish(DEMO_DOMAIN, function(resp){
console.log("\n===> Publish result: ", resp);
if (resp.code != 200){
clear(rs);
return;
}
});

// 删除bucket,慎用!
rs.drop(function(resp){
console.log("\n===> Drop result: ", resp);
});
参考文档:[七牛云存储 Node.js SDK 使用指南](https://github.com/qiniu/nodejs-sdk/tree/develop/docs)

旧版本的SDK(version < 6.0.0) [戳这里](http://docs.qiniutek.com/v3/sdk/nodejs/)

## 贡献代码

Expand All @@ -131,7 +40,7 @@ SDK 使用文档参考:[http://docs.qiniutek.com/v3/sdk/nodejs/](http://docs.q

## 许可证

Copyright (c) 2012 qiniu.com
Copyright (c) 2013 qiniu.com

基于 MIT 协议发布:

Expand Down
Loading