前言
最近继续在研究JSBox,并且发现微信似乎不屏蔽七牛云的链接了,所以将之前图片评论的js移植到了七牛云。七牛云上传是要上传凭证的,怎么计算Token花费不少时间,之前做的方案代码过多,运行效率不高,参考了RYAN大的QiniuManager后成功移植。
安装链接
详细代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| const CryptoJS = require("crypto-js") String.prototype.urlsafe = function() { return this.replace(/\+/g, "-").replace(/\//g, "_") }
var AK = ""
var SK = ""
var bucket = ""
var domain = "" var deadline = Math.round(new Date().getTime() / 1000) + 1 * 3600 var params = {scope: bucket,deadline: deadline} var policy = JSON.stringify(params) var policyEncoded = $text.base64Encode(policy).urlsafe() var sign = CryptoJS.HmacSHA1(policyEncoded, SK) var signEncoded = sign.toString(CryptoJS.enc.Base64).urlsafe() var token = AK + ":" + signEncoded + ":" + policyEncoded
function PickImage() { $photo.pick({ format: "image", handler: function(resp) { var image = resp.image if (image) { Upload(image) } else { $ui.loading(false) } } }) }
function Upload(image) { $http.upload({ url: "http://upload.qiniu.com/", form: { token: token }, files: [{ "image": image, "name": "file", "filename": "file" }], progress: function(percentage) {
}, handler: function(resp) { var url = domain + resp.data.key if (url) { Shorturl(url) } else { $ui.alert("图片上传失败") } } }) }
function Shorturl(url) { $http.shorten({ url: url, handler: function(url) { if (url) { $clipboard.text = "图片评论 " + url $ui.toast("复制成功", 2) $app.close(2) } } }) }
var inputImage = $context.image if (inputImage) { Upload(inputImage) }else{ PickImage() }
|