欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序上传图片至OSS的一些个人总结

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:736

高端HTML5响应式企业通用网

2020-05-06   浏览:517

html5响应式外贸网站英文版

2020-05-08   浏览:505

HTML5自适应律师工作室类网

2020-04-04   浏览:501

HTML5影视传媒文化公司类网

2020-05-12   浏览:495

微信小程序上传图片至OSS的一些个人总结

发布时间:2021-01-12  

这两天修改公司小程序的一些功能,发现上传图片至OSS失败,便一直寻找出现了什么问题,最后发现是policy过期,更改后发现相应的signature也要改,因为需要特定的处理才能生成signature,当时好一顿查资料,最后算出signature,在这里做一下总结.

首先,准备工作:

1.下载Base64.js,hmac.js,sha1.js,crypto.js相关算法 点击 。

2.创建一个用于计算的policy和signa的js文件,我们只要输出结果即可。我们起名为ceshi.js。

3.在ceshi.js引入我们下载的4个算法文件。

const Base64 = require('./Base64.js'); require('./hmac.js'); require('./sha1.js'); const Crypto = require('./crypto.js'); 一、先转码Policy

在ceshi.js

let date = new Date(); date.setHours(date.getHours() + 87677); let srcT = date.toISOString(); const policyText = { "expiration": srcT, //设置该Policy的失效时间 "conditions": [ ["content-length-range", 0, 5 * 1024 * 1024] // 设置上传文件的大小限制,5mb ] }; const policyBase64 = Base64.encode(JSON.stringify(policyText));

使用此js可计算出一个policy

二、计算signature const accesskey = 'QSZ***98V1DW'; // 为了保密我做了处理,大家输入自己公司的accesskey即可。 const bytes = Crypto.HMAC(Crypto.SHA1, policyBase64, accesskey, { asBytes: true }); const signature = Crypto.util.bytesToBase64(bytes); console.log(policyBase64); console.log("myfunc...."); console.log(signature);

这样我们便可计算出signature啦。

三、全部代码为

ceshi.js

const Base64 = require('./Base64.js'); require('./hmac.js'); require('./sha1.js'); const Crypto = require('./crypto.js'); function myfunc() { let date = new Date(); date.setHours(date.getHours() + 87677); let srcT = date.toISOString(); console.log(srcT); const policyText = { "expiration": srcT, //设置该Policy的失效时间 "conditions": [ ["content-length-range", 0, 5 * 1024 * 1024] // 设置上传文件的大小限制,5mb ] }; const policyBase64 = Base64.encode(JSON.stringify(policyText)); const accesskey = 'QSZYryqudf8AAzyoAoJbeCIP98V1DW'; const bytes = Crypto.HMAC(Crypto.SHA1, policyBase64, accesskey, { asBytes: true }); const signature = Crypto.util.bytesToBase64(bytes); console.log(policyBase64); console.log("myfunc...."); console.log(signature); } module.exports.myfunc = myfunc;

四、调用ceshi.js

新建oss.js

const ceshi = require('./ceshi.js'); var app = getApp() Page({ data: { }, onLoad: function (options) { ceshi.myfunc(); }, onReady: function () { }, onShow: function () { }, onHide: function () { }, onUnload: function () { }, onPullDownRefresh: function () { }, onReachBottom: function () { }, onShareAppMessage: function () { } }) 五、文件目录

微信小程序上传图片至OSS的一些个人总结

六、结果

微信小程序上传图片至OSS的一些个人总结

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.