From d059b27743e358e0c25574b1a256d9c752ca8fb8 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sat, 9 Feb 2013 12:31:20 +0800 Subject: [PATCH 1/2] changelog --- CHANGELOG.md | 35 ++++++++++++++-- demo/img_demo.js | 101 ----------------------------------------------- demo/rs_demo.js | 79 ------------------------------------ lib/auth.js | 21 +++++----- test/rs.test.js | 4 +- 5 files changed, 44 insertions(+), 196 deletions(-) delete mode 100644 demo/img_demo.js delete mode 100644 demo/rs_demo.js diff --git a/CHANGELOG.md b/CHANGELOG.md index fab57a52..ee4cf63a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,45 @@ #CHANGELOG +## v2.4.1 + +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 -updated: - - 修复crc32编码 - 修复使用UploadToken方式上传时流式上传bug,流式上传不检查crc32 + ## v2.3.0 2012-11-23 -updated: - - 启用新的 uploadToken(上传凭证)上传方式,可由客户方业务服务器生成上传凭证。上传前无需请求七牛云存储,减少http请求。 + diff --git a/demo/img_demo.js b/demo/img_demo.js deleted file mode 100644 index efebb6c5..00000000 --- a/demo/img_demo.js +++ /dev/null @@ -1,101 +0,0 @@ -var qiniu = require('../index.js'); -var mime = require('mime'); - -qiniu.conf.ACCESS_KEY = ''; -qiniu.conf.SECRET_KEY = ''; - -var key = 'test.jpg'; // test.jpg must exists -var friendlyName = key; - -var newkey = "test-cropped.jpg"; -var thumbnails_bucket = 'thumbnails_bucket_ikbear'; -var DEMO_DOMAIN = thumbnails_bucket + '.dn.qbox.me'; - -var conn = new qiniu.digestauth.Client(); - -qiniu.rs.mkbucket(conn, thumbnails_bucket, function(resp) { - console.log("\n===> Make thumbnails bucket result: ", resp); - if (resp.code != 200) { - return; - } - var opts = { - scope: thumbnails_bucket, - expires: 3600, - callbackUrl: null, - callbackBodyType: null, - customer: null - }; - var token = new qiniu.auth.UploadToken(opts); - var uploadToken = token.generateToken(); - var mimeType = mime.lookup(key); - - var imgrs = new qiniu.rs.Service(conn, thumbnails_bucket); - - var localFile = key, - customMeta = "", - callbackParams = {}, - enableCrc32Check = false; - - imgrs.uploadFileWithToken(uploadToken, localFile, key, mimeType, customMeta, callbackParams, enableCrc32Check, function(resp){ - console.log("\n===> Upload Image with Token result: ", resp); - if (resp.code != 200) { - clear(imgrs); - return; - } - - imgrs.publish(DEMO_DOMAIN, function(resp) { - console.log("\n===> Publish result: ", resp); - if (resp.code != 200) { - clear(imgrs); - return; - } - - imgrs.get(key, friendlyName, function(resp) { - console.log("\n===> Get result: ", resp); - if (resp.code != 200) { - clear(imgrs); - return; - } - - var options = { - "thumbnail": "!120x120r", - "gravity": "center", - "crop": "!120x120a0a0", - "quality": 85, - "rotate": 45, - "format": "jpg", - "auto_orient": true - }; - - console.log("\n===> thumbnail url is: ", qiniu.img.mogrify(resp.data.url, options)); - - imgrs.imageMogrifyAs(newkey, resp.data.url, options, function(resp){ - console.log("\n===> imageMogrifyAs result: ", resp); - if (resp.code != 200) { - clear(imgrs); - return; - } - - imgrs.stat(key, function(resp) { - console.log("\n===> Stat result: ", resp); - if (resp.code != 200) { - clear(imgrs); - return; - } - - imgrs.remove(key, function(resp) { - clear(imgrs); - console.log("\n===> Delete result: ", resp); - }); - }); - }); - }); - }); - }); -}); - -function clear(imgrs){ - imgrs.drop(function(resp){ - console.log("\n===> Drop result: ", resp); - }); -} diff --git a/demo/rs_demo.js b/demo/rs_demo.js deleted file mode 100644 index 7efe9c1f..00000000 --- a/demo/rs_demo.js +++ /dev/null @@ -1,79 +0,0 @@ -var fs = require('fs'); -var path = require('path'); -var mime = require('mime'); -var qiniu = require('../index.js'); - -qiniu.conf.ACCESS_KEY = ''; -qiniu.conf.SECRET_KEY = ''; - -var key = __filename; -var friendName = key; -var bucket = 'qiniu_test_bucket_ikbear2'; -var DEMO_DOMAIN = bucket + '.dn.qbox.me'; - -var conn = new qiniu.digestauth.Client(); - -qiniu.rs.mkbucket(conn, bucket, function(resp) { - console.log("\n===> Make bucket result: ", resp); - if (resp.code != 200) { - return; - } - var opts = { - scope: bucket, - expires: 3600, - callbackUrl: null, - callbackBodyType: null, - customer: null - }; - var token = new qiniu.auth.UploadToken(opts); - var uploadToken = token.generateToken(); - var mimeType = mime.lookup(key); - - var rs = new qiniu.rs.Service(conn, bucket); - - var localFile = key, - customMeta = "", - callbackParams = {}, - enableCrc32Check = true; - - rs.uploadFileWithToken(uploadToken, localFile, key, mimeType, customMeta, callbackParams, enableCrc32Check, function(resp){ - console.log("\n===> Upload File with Token result: ", resp); - if (resp.code != 200) { - clear(rs); - return; - } - rs.publish(DEMO_DOMAIN, function(resp){ - console.log("\n===> Publish result: ", resp); - if (resp.code != 200){ - clear(rs); - return; - } - rs.stat(key, function(resp) { - console.log("\n===> Stat result: ", resp); - if (resp.code != 200) { - clear(rs); - return; - } - - rs.get(key, friendName, function(resp) { - console.log("\n===> Get result: ", resp); - if (resp.code != 200) { - clear(rs); - return; - } - - rs.remove(key, function(resp) { - clear(rs); - console.log("\n===> Delete result: ", resp); - }); - }); - }); - }); - }); -}); - -function clear(rs) { - rs.drop(function(resp){ - console.log("\n===> Drop result: ", resp); - }); -} diff --git a/lib/auth.js b/lib/auth.js index 78d642c6..1939e119 100644 --- a/lib/auth.js +++ b/lib/auth.js @@ -2,8 +2,8 @@ var crypto = require('crypto'); var config = require("./conf.js"); var util = require('./util.js'); -exports.UploadToken = UploadToken; -exports.DownloadToken = DownloadToken; +exports.PutPolicy = PutPolicy; +exports.GetPolicy = GetPolicy; // ------------------------------------------------------------------------------------------ // func generateSignature @@ -33,9 +33,9 @@ function generateToken(params) { } // ------------------------------------------------------------------------------------------ -// type UploadToken +// type PutPolicy -function UploadToken(opts) { +function PutPolicy(opts) { this.scope = opts.scope || null; this.expires = opts.expires || 3600; this.callbackUrl = opts.callbackUrl || null; @@ -45,7 +45,7 @@ function UploadToken(opts) { this.asyncOps = opts.asyncOps || null; } -UploadToken.prototype.generateToken = function() { +PutPolicy.prototype.token = function() { var params = { "deadline": this.expires + Math.floor(Date.now() / 1000), "escape": this.excape, @@ -69,19 +69,20 @@ UploadToken.prototype.generateToken = function() { }; // ------------------------------------------------------------------------------------------ -// type DownloadToken +// type GetPolicy -function DownloadToken(opts) { +function GetPolicy(opts) { this.expires = opts.expires || 3600; - this.pattern = opts.pattern || "*/*"; + this.scope = opts.scope || "*/*"; } -DownloadToken.prototype.generateToken = function() { +GetPolicy.prototype.token = function() { var params = { - S: this.pattern, + S: this.scope, E: this.expires + Math.floor(Date.now() / 1000), }; return generateToken(params); }; // ------------------------------------------------------------------------------------------ + diff --git a/test/rs.test.js b/test/rs.test.js index 5a199694..d2a793f1 100644 --- a/test/rs.test.js +++ b/test/rs.test.js @@ -254,8 +254,8 @@ describe('rs.test.js', function () { callbackBodyType: null, customer: null }; - var token = new qiniu.auth.UploadToken(opts); - upToken = token.generateToken(); + var policy = new qiniu.auth.PutPolicy(opts); + upToken = policy.token(); done(); }); From c95f8b0e5e7cc02096e34f8f86825b1294d81544 Mon Sep 17 00:00:00 2001 From: xushiwei Date: Sat, 9 Feb 2013 12:35:52 +0800 Subject: [PATCH 2/2] 2013-02-09 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee4cf63a..4a7fade7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## v2.4.1 +2013-02-09 + Issue [#43](https://github.com/qiniu/nodejs-sdk/pull/43): - imageMogr bugfix: auto-orient