Update3:配置文件。很多人不知道配置文件是啥样的,我把那个文件也发上来,按理说很好推测配置文件的内容。
config.js
var fileHost="xxxx.aliyuncs.com(你的阿里云oss地址)"
var config = {
//aliyun OSS config
uploadImageUrl: `${fileHost}`, //默认存在根目录,可根据需求改
AccessKeySecret: '填你自己的AccessKeySecret',
OSSAccessKeyId: '填你自己的 OSSAccessKeyId',
timeout: 87600 //这个是上传文件时Policy的失效时间
};
module.exports = config
Base64,hmac,sha1,crypto相关算法点击这里。
Update2:代码重构。修改之前的代码,修改为微信小程序接口的使用方式。代码里面使用的各种算法出处,详见答案底部的原答案。
1.UploadAliyun.js
const env = require('../config.js');
const Base64 = require('./Base64.js');
require('./hmac.js');
require('./sha1.js');
const Crypto = require('./crypto.js');
const uploadFile = function (params) {
if (!params.filePath || params.filePath.length < 9) {
wx.showModal({
title: '图片错误',
content: '请重试',
showCancel: false,
})
return;
}
const aliyunFileKey = params.dir + params.filePath.replace('wxfile://', '');
const aliyunServerURL = env.uploadImageUrl;
const accessid = env.OSSAccessKeyId;
const policyBase64 = getPolicyBase64();
const signature = getSignature(policyBase64);
console.log('aliyunFileKey=', aliyunFileKey);
console.log('aliyunServerURL', aliyunServerURL);
wx.uploadFi