Skip to content

Instantly share code, notes, and snippets.

@liangchaoboy
Created January 21, 2018 13:21
Show Gist options
  • Save liangchaoboy/46cb4297aafaaaa46a222d49ba8a7597 to your computer and use it in GitHub Desktop.
Save liangchaoboy/46cb4297aafaaaa46a222d49ba8a7597 to your computer and use it in GitHub Desktop.
qiniu
var qiniu = require("qiniu");
var crypto = require('crypto');
var urllib = require('urllib');
var url = require('url');
var fs = require('fs');
var LineByLineReader = require('line-by-line');
var request = require('request');
var ak = '**';
var sk = '**';
var bucketName = "**";
var log_path = '/Users/liangchao/Downloads/list_tu_log';
rl = new LineByLineReader('/Users/liangchao/Downloads/hello_world6');
var i = 1;
rl.on('line', function(line) {
console.log( i + '\t' + line);
rl.pause();
var key = line;
var encodedEntry = qiniu.util.urlsafeBase64Encode( bucketName + ':' + key);
console.log(i + '\t' + encodedEntry);
var toSign = "/chstatus/" + encodedEntry + "/status/1";
var tt = sign(toSign + '\n');
urllib.request('http://rs.qiniu.com' + toSign, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'QBox ' + tt
}
},function (err, data, res) {
if (err) {
throw err; // you need to handle error
}
console.log(res.statusCode);
console.log(res.headers);
// data is Buffer instance
console.log(data.toString())
});
i++;
// fs.appendFile(log_path, data, 'utf8',function(err){
// if(err){
// console.log(err);
// }
// });
setTimeout(function(args) {
// console.log(i++);
// console.log(new Date());
rl.resume();
// i++;
}, 100);
});
rl.on('error', function(e) {
console.log(e);
});
// 创建 AccessToken 凭证
function sign(signingStr){
var digest = hmacSha1(signingStr, sk);
var safeDigest = qiniu.util.base64ToUrlSafe(digest);
return ak + ':' + safeDigest;
}
// Hmac-sha1 Crypt
function hmacSha1 (encodedFlags, secretKey) {
/*
*return value already encoded with base64
* */
var hmac = crypto.createHmac('sha1', secretKey);
hmac.update(encodedFlags);
return hmac.digest('base64');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment